Seite 1 von 1

fehler in NV usertopics

Verfasst: 28.07.2009 12:59
von siberia-angel
hallo,
ich habe den folgenden mod usertopics eingebaut, wenn ich in den admin bereich gehe schreibt er folgendes.

Parse error: syntax error, unexpected T_CASE in /.../includes/acp/acp_main.php on line 216

hier mal der folgende ausschnitt aus der acp_main.php

Zeile 216 ist case 'topics':
zeile 211-220

Code: Alles auswählen

// Still no maximum post id? Then we are finished
						if (!$max_post_id)
						{
							add_log('admin', 'LOG_RESYNC_POSTCOUNTS');
							break;
							case 'topics':
						if (!$auth->acl_get('a_board'))
						{
							trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
						}

Re: fehler in NV usertopics

Verfasst: 28.07.2009 14:47
von Würzi
Moin,

ja so kann das ja auch nicht gehen. Kontrolliere einfach den Einbau in dieser Datei nochma genau an dieser Stelle :wink:
Oder häng sie mal ins Pastebin, damit mal ein anderer (ich nicht, hab den Mod nicht) mal schauen kann.

Ich denk dein Abschnitt muss viel tiefer, wie du ihn momentan hast öffnest du
if { Klammer auf
dann setzt du was zwischenrein.
Klammer auf muss immer geschlossen werden mit Klammer zu, wie bei ner Wurst, welche ja auch zwei Enden hat und geschlossen wird, bevor die nächste Wurst anfängt. :D

Re: fehler in NV usertopics

Verfasst: 28.07.2009 15:03
von siberia-angel
ich stelle das mal als txt. datei online

klick mich

Re: fehler in NV usertopics

Verfasst: 28.07.2009 15:54
von Würzi
Aja.... schon einleuchtender, aber pastebin wäre trotzdem besser gewesen. :wink:

Also ich bau dir nun absichtlich nicht den code richtig ein (wegen dem Lerneffekt) :wink:

Kontrolliere dein Einbau in der acp_main.php, am besten backup der Datei hochladen und die 2 edits neu machen in dieser Datei. :wink:

Wie auch bei einer offenen Klammer die immer irgendwie geschlossen werden muss ist dies das gleiche bei:
case 'xxxx': = Wurstanfang
break; = Wurstende

Ich hoff das ist einigermaßen logisch anhand einer Wurst erklärt. :P

Das heisst für dich, den code wo du einfügen sollst nach dem:
break; :wink:

Du bist da ein bisschen zu weit hoch gerutscht mit dem einzufügenden Code.
Vorschlag fürs Mod einbauen = Software Notepad ++ und mehrere Zeilen suchen mit Strg + R
Damit suchst du mehrere Zeilen und dann passiert dir sowas auch nicht mehr in Zukunft.

Mfg dat Wuerzi

Re: fehler in NV usertopics

Verfasst: 28.07.2009 19:19
von siberia-angel
danke erstmal, ich nutze notepad und lasse suchen und mache nur das was da steht habe die datei auch zweimal gemacht weil er immer wieder diesen fehler anzeigte, ich werde es gegen abend noch mal versuchen.

edit:
Okay ohne jemanden auf den schlimps treten zu wollen,

in der installation steht drinn,

Code: Alles auswählen

$start += $step;
						}

						add_log('admin', 'LOG_RESYNC_POSTCOUNTS');

					break;
und ich soll danach dieses setzten:

Code: Alles auswählen

case 'topics':
						if (!$auth->acl_get('a_board'))
						{
							trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
						}

						$sql = 'SELECT COUNT(p.post_id) AS num_topics, u.user_id
							FROM ' . USERS_TABLE . ' u
							LEFT JOIN  ' . TOPICS_TABLE . ' t ON (u.user_id = t.topic_poster)
							LEFT JOIN  ' . POSTS_TABLE . ' p ON (p.post_id = t.topic_first_post_id AND p.post_postcount = 1)
							GROUP BY u.user_id';
						$result = $db->sql_query($sql);

						while ($row = $db->sql_fetchrow($result))
						{
							$db->sql_query('UPDATE ' . USERS_TABLE . " SET user_topics = {$row['num_topics']} WHERE user_id = {$row['user_id']}");
						}
						$db->sql_freeresult($result);

						add_log('admin', 'LOG_RESYNC_TOPICCOUNTS');

					break;
wo mache ich denn da bitte ein fehler? wenn ich das genau so mache wie es geschrieben steht :oops:
wenn ich dich richtig verstehe soll ich irgendwo } sowas setzten dann wäre es aber doch ein fehler im mod und kein fehler bei mir :oops:

oben wie gesagt steht das was ich finden soll unter dem Break steht } laut anleitung des mods soll ich das darauf direkt hinter break setzten deshalb zeigte er den fehler an. ich habe das was ich dahinter setzten sollte hinter die klammer von break gesetzt und jetzt funktioniert das :oops:

Re: fehler in NV usertopics

Verfasst: 28.07.2009 20:20
von Würzi
Ich behaupte nu ma ganz frech, daß NV keinen Fehler gemacht hat... :P

Du hast in deiner hier gezeigten txt den einzufügenden Code hinter folgendem gesetzt:

Code: Alles auswählen

						// Still no maximum post id? Then we are finished
						if (!$max_post_id)
						{
							add_log('admin', 'LOG_RESYNC_POSTCOUNTS');
							break;
Das ist falsch! In der Anleitung steht hinter:

Code: Alles auswählen

							$start += $step;
						}

						add_log('admin', 'LOG_RESYNC_POSTCOUNTS');

					break;
Deswegen mein Wurstkommentar, daß ein case immer mit break endet und man sieht mit Notepad ++ ja auch schön die Absätze bzw Einrückungen.
Beginnt case irgendwo z.B. mit 5 Tabs von der linken Seite, dann endet das auch mit 5 Tabs von der linken Seite. Soviel dazu warum sauberer code besser ist, dann findet man auch alles leichter. Und wenn du meinen Tip nutzen würdest mit Notepad ++ und dem Tastaturbefehl Strg + R dann eben würd dir sowas nicht passieren, daß man nen Code an die falsche Stelle setzt. Aber ich widerhole mich dahingehend ungern. :wink: