Wie bekomme ich die Postid mit einem bbcode in einen post?

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
AveN
Mitglied
Beiträge: 19
Registriert: 31.07.2004 22:59
Kontaktdaten:

Wie bekomme ich die Postid mit einem bbcode in einen post?

Beitrag von AveN »

ich denke der titel, ebschriebt mein problem sehr gut:

ich möchte, dass per bbcode diepost_id in einen post eingebunden wird... wie bekomm ich nun die post_id in den dazugehörigen post?!

ich hoffe, dass mir jemand helfen kann, und bin ihm dann auch sehr dankbar.

MfG AveN
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Du möchtest erreichen, das man bei jedem Beitrag die jeweilige ID des Beitrages einfügen kann.. und zwar sozusagen über einen (BBcode) Button ?
AveN
Mitglied
Beiträge: 19
Registriert: 31.07.2004 22:59
Kontaktdaten:

Beitrag von AveN »

Acid hat geschrieben:Du möchtest erreichen, das man bei jedem Beitrag die jeweilige ID des Beitrages einfügen kann.. und zwar sozusagen über einen (BBcode) Button ?
prinzipiell genau das... nur das ichh es für etwas anderes verwenden möchte... und zwar, brauch ich die post_id als id für ein html-element... aber den rest bekomm ich dann hin :)

wenn's dich noch interessiert, es ist für einen klapptext ;)

thx AveN

p.s. aso button is total übertriebne.. .einfach mit nem code wie [pid]

... also massenhaft neue bbcodes hab cih schon gemacht, also weiß wie soetwas geht... nur wie bekom mich hin das dann die postid nachher im html-pendant steht?!
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Muss dies beim Schreiben eines Beitrages geschehen oder reicht´s aus, wenn dann in der Themenansicht die jeweilige postID angezeigt wird?

Denn die erste Variante ist nicht so recht umzusetzen.
Wenn man einen Beitrag schreibt, existiert dieser ja noch nicht in der Datenbank und somit ist auch noch keine ID vergeben, die man dann einfügen könnte.
Theoretisch könnte man dann die vorhandene, letzte ID auslesen und dann +1 rechnen. Wenn dann aber jemand anderer vor einem bzw. zum gleichen Zeitpunkt einen Beitrag verfasst, dürften die IDs dann nicht mehr zutreffend sein.
AveN
Mitglied
Beiträge: 19
Registriert: 31.07.2004 22:59
Kontaktdaten:

Beitrag von AveN »

es reicht vollkommen aus, wenn die post_id bei der themenansicht gezeigt wird.
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

(blau ist neu/einzufügen)

viewtopic.php
'POST_ID' => $post_id,
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
viewtopic_body.tpl
{postrow.POST_SUBJECT} &nbsp; &nbsp;postID #{postrow.POST_ID}</span></td>
Vielleicht hilft dir aber auch schon der Anker ([ externes Bild ]) in der Themenansicht weiter.
AveN
Mitglied
Beiträge: 19
Registriert: 31.07.2004 22:59
Kontaktdaten:

Beitrag von AveN »

der haken ist nur, dass dies nun immer geschieht... und nicht durch einen bbcode... so kann ich ja nicht ausnutzen, dass ich diese zahl habe.

ich werde gleich mal einen post machen, der mein problem detailliert darstellt.
AveN
Mitglied
Beiträge: 19
Registriert: 31.07.2004 22:59
Kontaktdaten:

Beitrag von AveN »

http://www.clan-inspiration.de/index.php?page=index

die letzten beiden news beinhalten einen klapptext, gekennzeichnet durch en kleines plus.

den habe ich wie folgt realisiert:

/include/bbcode.php

Code: Alles auswählen

$unique_key = make_bbcode_uid();

Code: Alles auswählen

$bbcode_tpl['more_open'] = str_replace('{MORE}', $unique_key . '-\\1', $bbcode_tpl['more_open']);
	$bbcode_tpl['txt_open'] = str_replace('{TXT}', $unique_key . '-\\1', $bbcode_tpl['txt_open']);

Code: Alles auswählen

// moreLink
	$text = preg_replace("/\[more=([0-9]):$uid\]/si", $bbcode_tpl['more_open'], $text);
	$text = str_replace("[/more:$uid]", $bbcode_tpl['more_close'], $text);

	// moreText
	$text = preg_replace("/\[txt=([0-9]):$uid\]/si", $bbcode_tpl['txt_open'], $text);
	$text = str_replace("[/txt:$uid]", $bbcode_tpl['txt_close'], $text);

Code: Alles auswählen

// [more] and [/more] for setting text '
	$text = preg_replace("#\[more=([0-9])\](.*?)\[/more\]#si", "[more=\\1:$uid]\\2[/more:$uid]", $text);
	// [txt] and [/txt] for setting text '
	$text = preg_replace("#\[txt=([0-9])\](.*?)\[/txt\]#si", "[txt=\\1:$uid]\\2[/txt:$uid]", $text);
/templates/template/bbcode.tpl

Code: Alles auswählen

<!-- BEGIN more_open --><a href="javascript: flipPanel('{MORE}')"><img src="../images/icons/expand.gif" id="{MORE}_img" border="0" /><!-- END more_open -->
<!-- BEGIN more_close --></a><!-- END more_close -->
<!-- BEGIN txt_open --><span id="{TXT}" style="display: none"><!-- END txt_open -->
<!-- BEGIN txt_close --></span><!-- END txt_close -->
im html - Header

Code: Alles auswählen

function flipPanel(panelName) {
  if(eval("document.getElementById(\""+panelName+"\").style.display") == 'none') {
    eval("document.getElementById(\""+panelName+"\").style.display='inline'");
    document.getElementById(panelName + "_img").src = "../images/icons/collapse.gif";
  } else {
    document.getElementById(panelName + "_img").src = "../images/icons/expand.gif";
    eval("document.getElementById(\""+panelName+"\").style.display='none'");
  }
}
nur hat sich jetzt herrausgestellt, dass die $uid - variable untauglich ist, da sie jedes mal für das gesamte board neu erstellt wird. wie man sieht klappt nur der neuere text auf, weil er der erste mit der id des links ist.

versteht ihr mein problem? ich wollte nu ndie jeweilige post-id in die id der spans integrierne, damit man eine unique-id hat, damit auch nur der text aufklappt, der angeklickt wird.

bitte helft mir :(

MfG AveN
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

du solltest die id nicht mit

Code: Alles auswählen

$unique_key = make_bbcode_uid();
erstellen sonden die benutzen, die schon da ist. und die sollte eigendlich für jeden beitrag anders sein.

edit: stop. du hast nen denkfehler im code.

Code: Alles auswählen

$bbcode_tpl['more_open'] = str_replace('{MORE}', $unique_key . '-\\1', $bbcode_tpl['more_open']); 
   $bbcode_tpl['txt_open'] = str_replace('{TXT}', $unique_key . '-\\1', $bbcode_tpl['txt_open']);
wird ja nur einmal pro seitenaufruf ausgeführt. das heißt die unique id ist zwar jedesmal ne andere, aber auf der seite jedesmal die gleiche. du müstest das jedesmal pro news ausführen lassen bzw. pro bbbcode. mehr informationen heute vormittag.

mfg saerdnaer
Zuletzt geändert von saerdnaer am 01.08.2004 02:39, insgesamt 1-mal geändert.
AveN
Mitglied
Beiträge: 19
Registriert: 31.07.2004 22:59
Kontaktdaten:

Beitrag von AveN »

okay... hab verstanden was du mir sagen willst... nur nun bin ich noch verzweifelter am überlegen, wie ich das hinbekomme :/
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“