Hallo 4seven,
ich habe jetzt noch etwas mit der Sortierung der BBCodes in Verbindung mit den Grafiken rumprobiert, das scheint ein etwas schwerer zu lösendes Problem zu sein. Vermutlich wird es nur gehen, wenn man eine weitere Tabelle anlegt, in welcher die Zuordnungen der fest vorgegebenen BBCodes und die selbst erstellten BBCodes gespeichert sind. Erst dann könnte man eine Sortierung auf alle BBCodes anwenden.
Aber im Grunde funktioniert es, wenn ich die Namen der Grafiken mit zum BBCode ablege und dann aus der Tabelle auslese. Ich habe es so für die ersten Versuche gemacht:
posting_buttons.html
Code: Alles auswählen
<!-- BEGIN custom_tags_pic -->
<img src="{T_IMAGESET_PATH}/buttons/{custom_tags_pic.BBCODE_PIC}.gif" alt=""
id="{custom_tags_pic.BBCODE_TAG}" onclick="bbstyle({custom_tags_pic.BBCODE_NR})"
onmouseover="{custom_tags_pic.BBCODE_TAG}.src='{T_IMAGESET_PATH}/buttons/{custom_tags_pic.BBCODE_PIC}1.gif'; helpline('{custom_tags_pic.BBCODE_TAG}')"
onmouseout="{custom_tags_pic.BBCODE_TAG}.src='{T_IMAGESET_PATH}/buttons/{custom_tags_pic.BBCODE_PIC}.gif'; helpline('tip')" />
<!-- END custom_tags_pic -->
functions_display.php
Code: Alles auswählen
function display_custom_bbcodes_pic()
{
global $db, $template;
// Start counting from 22 for the bbcode ids (every bbcode takes two ids - opening/closing)
// note for bbcodebox3 : new start counting from 78 for the bbcode ids (every bbcode takes two ids - opening/closing)
$num_predefined_bbcodes = 78;
$sql = 'SELECT *
FROM ' . BBCODES_TABLE . '
WHERE display_on_posting = 0
ORDER BY bbcode_order';
$result = $db->sql_query($sql);
$i = 0;
while ($row = $db->sql_fetchrow($result))
{
//echo $row['bbcode_pic'];
$template->assign_block_vars('custom_tags_pic', array(
'BBCODE_NAME' => "'[{$row['bbcode_tag']}]', '[/" . str_replace('=', '', $row['bbcode_tag']) . "]'",
'BBCODE_ID' => $num_predefined_bbcodes + ($i * 2),
'BBCODE_TAG' => $row['bbcode_tag'],
'BBCODE_HELPLINE' => $row['bbcode_helpline'],
'A_BBCODE_HELPLINE' => str_replace(array('&', '"', "'", '<', '>'), array('&', '"', "\'", '<', '>'), $row['bbcode_helpline']),
'BBCODE_PIC' => $row['bbcode_pic'],
'BBCODE_NR' => $row['bbcode_nr'],
));
$i++;
}
$db->sql_freeresult($result);
}
Die zusätzlichen Daten habe ich noch von Hand in die Tabelle eingetragen. Hierbei sind noch keine Platzhalter und der gleichen berücksichtigt. Was auch noch ein Problem darstellt, das ist die Mehrsprachigkeit so wie es auch bei den fest vorgegebenen BBCodes der Fall ist.
[EDIT]
Also ich bin ein kleines Stück weiter, es lassen sich alle Buttons beliebig in der Reihenfolge anordnen (im ACP einstellbar). Ich bin dazu her gegangen und habe eine zweite Tabelle angelegt, in der die Infos für die Buttons stehen. Jetzt muss ich noch beide Tabellen miteinander Verbinden, so dass bei der Erstellung eines BBCodes auch die zweite Tabelle entsprechend angepasst wird.
In die zweite Tabelle muss ich dann auch noch eine Funktion einbauen, mit welcher man einen Zeilenumbruch und einen Platzhalter einfügen kann. Danach kommt die Sache mit den Rechten dran, Die Darstellung der Buttons in Abhängigkeit der Rechte ist mit der zweiten Tabelle kein Problem, nur dass dann auch der BBCode entsprechend ausgegeben wird, das ist noch ein größeres Problem.
Gruß Helmut
