MastaG
Hi@all,
also, hab mir was gecodet. Wenn ich nen neues Thema mache, kann ich noch zusätzlich ein paar Sachen angeben. (Seriennummer von amazon). Dies wird dann auch in der thread.php wiedergegeben. Wenn aber jetzt jemand auf das Thema antwortet und editiert anschließend seinen post, kann er die seriennummer editieren (das ist ja nicht Sinn der Sache). Das editieren hab ich extra eingebunden (amazon_edit.php). Hat jemand ne Idee, wie ich das machen kann, dass nur der Threadstarter dieses Seriennummer dann angezeigt? Also per if schleife oda so? Wenn per if schleifen pls sagen wie, danke schonma!!
MrMind
Erstmal gehört das ins Allg. Fragen & Probleme Forum des 2er's, sag mir welche und ich verschiebe es dahin.
@Topic
ich würde abfragen über die Userid, ob es der Themenersteller ist, wenn ja, dann zeige das Feld an, wenn nein, dann zeige es net an. Dafür musst du das Eingabefeld (also die Template) in eine Extratemplate schreiben und dann mit eval() jeweils anzeigen lassen oder net.
mfg
MrMind
xundy
na so kompliziert würde ich es nicht machen, bei der Ausgabe setzte das Feld mit der Seriennummer auf readonly
also <input type="text" name="name" value="$name" readonly="readonly" />
mfg
MrMind
| Zitat: |
Original von xundy
na so kompliziert würde ich es nicht machen, bei der Ausgabe setzte das Feld mit der Seriennummer auf readonly
also <input type="text" name="name" value="$name" readonly="readonly" />
mfg |
Dann kann aber der Verfasser des Textes, dieses Feld auch net editieren.
Das müsste dann auch wieder so ablaufen:
Ist derjenige der editiert, der verfasser, dann Readonly nicht angeben, wenn nicht, dann angeben.
(Kommt fast auf das selbe hinaus, wie ich es gesagt habe).
PS: dringend vor dem Speichern, dann nochmal überprüfen, ob der Editieruser auch der Verfasser ist.
Mfg
MrMind
xundy
| Zitat: |
Original von MrMind
| Zitat: |
Original von xundy
na so kompliziert würde ich es nicht machen, bei der Ausgabe setzte das Feld mit der Seriennummer auf readonly
also <input type="text" name="name" value="$name" readonly="readonly" />
mfg |
Dann kann aber der Verfasser des Textes, dieses Feld auch net editieren.
Das müsste dann auch wieder so ablaufen:
Ist derjenige der editiert, der verfasser, dann Readonly nicht angeben, wenn nicht, dann angeben.
(Kommt fast auf das selbe hinaus, wie ich es gesagt habe).
PS: dringend vor dem Speichern, dann nochmal überprüfen, ob der Editieruser auch der Verfasser ist.
Mfg
MrMind |
Wieso??
er hat doch gesagt das er zum editieren dieses Feldes eine eigene php-Datei verwendet, somit sollte der von mir gemachte Vorschlag völlig ausreichend sein
mfg
MrMind
| Zitat: |
Original von xundy
Wieso??
er hat doch gesagt das er zum editieren dieses Feldes eine eigene php-Datei verwendet, somit sollte der von mir gemachte Vorschlag völlig ausreichend sein
mfg |
So damit wir uns richtig verstehen und net aneinander vorbei reden
Um dieses Feld zu editieren wird eine neue Datei geladen (ok, das habe ich auch gerafft

).
Aber das Script muss ja unterscheiden, wer nun diesen Eintrag editieren darf und wer nicht, daher diese Überprüfung (und bei so einer großen Einschränkung auch nochmal kurz vorm Speichern, Wichtig!).
Wenn einer einen solchen Eintrag mal gemacht hat und auch diesen mal bearbeitet hat, kennt er das System von der Datei und kann den Übergebenen String so manipulieren, das er einen anderen Eintrag editieren kann.
Das readonly verhindert jeden (auf den ersten schein) das editieren eines Eintrages, aber irgendwie muss er ja auch editierbar sein (also über die Datei), da muss er ja festlegen, wer diesen eintrag editieren kann und wer nicht.
Gehen wir mal von diesem Szenario aus:
Beitrag bearbeiten, Feld ist readonly neben dran ein Link um dieses Feld zu bearbeiten <= hier muss geprüft sein oder noch werden, ob der User das auch darf.
Mfg
MrMind
MastaG
habs jetzt per if schleifen gemacht nur is das problem, dass jezz gar keiner mehr das editieren kann. Obwohl es eigentlich nur der threadersteller dürfte (geht trotzdem nich :-/ )
Hier mal angegeben, was ich angegeben habe:
editpost.php
if ($wbbuserdata[userid] == $threadstarter) {
if($wbbuserdata[can_use_amazon]==1 && $board[can_use_amazon]==1){
//amazon
include("./amazon/amazon_editpost.php");
}
}
editpost.tpl
<if($threadstarter==1)><then>
$amazon_edit
</then></if>
Kann mir mal jemand sagen, was daran falsch is? Danke im voraus!!
xundy
also ich weiß ja nicht wo du das
| code: |
1:
|
if ($wbbuserdata[userid] == $threadstarter) |
|
her hast aber wennsne originale editpost ist dann solltest du wohl eher diese Abfrage verwenden:
| code: |
1:
|
if ($wbbuserdata[userid] == $post['userid']) |
|
mfg
MastaG
| code: |
1:
2:
3:
4:
5:
6:
7:
|
if ($wbbuserdata[userid] == $post['userid']){
if($wbbuserdata[can_use_amazon]==1 && $board[can_use_amazon]==1){
//amazon
include("./amazon/amazon_editpost.php");
}
}
|
|
wenn du das so meinst, tut sich leider auch nix. Will ja nur, dass der User auch das editieren kann, der auch den thread gestartet hat, wenn du verstehst, was ich meine :-/. Aber das in der tpl datei stimmt, oder wie?
MrMind
ich bitte nochmal darum die WBB Version zu sagen, sonst close ich, da dies nicht ins öffentliche Forum gehört.
Mfg
MrMind
MastaG
um nochmal auf das Thema zurückzukommen:
<if($threadstarter==1)><then>
$amazon_edit
</then></if>
Das ist ja richtig. Aber was genau muss ich dann in der .php Datei anpassen???
THX im voraus!
KleenMicha
Dass kommt doch ins Template: editpost
Und es sollte dann nur der Threadstarter die Möglichkeit haben diese Variable $amazon_edit aufzurufenn.
in der Datei: editpost, solltest du aber noch vor:
| php: |
1:
|
eval("\$tpl->output(\"".$tpl->get("editpost")."\");"); |
|
Den Code für die Änderung des Amazoneintrages einbaun, bzw dort die andere datei includen. Damit die Variable: $amazon_edit auch in dem Template: editpost aufgerufen werden kann.
MastaG
kann aufgerufen werden. Wenn ich aus dem template das if threadstarter = 1 entferne, kann man das sehen, sobald ich das setze, sieht man nichts mehr. Denke mal, dass es an der php datei liegt....
KleenMicha
Versuchs mal so einzufügen, in editpost.php:
| php: |
1:
|
if ($thread['starterid'] == $wbbuserdata['userid']) eval("\$test = \"".$tpl->get("test")."\";"); |
|
Damit wird nen Template mit namen test ausgegeben welches mit $test in, editpost.tpl eingebunden ist.
Darüber kannst du dieses Feld ja wieder anzeigen lassen, nur für den Threadstarter