Seite 1 von 2

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

Verfasst: 31.07.2004 23:04
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

Verfasst: 31.07.2004 23:24
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 ?

Verfasst: 31.07.2004 23:27
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?!

Verfasst: 31.07.2004 23:45
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.

Verfasst: 31.07.2004 23:47
von AveN
es reicht vollkommen aus, wenn die post_id bei der themenansicht gezeigt wird.

Verfasst: 01.08.2004 00:11
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.

Verfasst: 01.08.2004 01:45
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.

Verfasst: 01.08.2004 02:04
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

Verfasst: 01.08.2004 02:29
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

Verfasst: 01.08.2004 02:38
von AveN
okay... hab verstanden was du mir sagen willst... nur nun bin ich noch verzweifelter am überlegen, wie ich das hinbekomme :/