Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 30
Seite [1] 2 >
Zage


King for a day





Beiträge: 283
# Thema - 28.07.2008 um 11:13 Uhr
Hallo,

verfeinere grad mein Punktesystem, um es leichter zu integrieren.

arbeite mit einer funktion um punkte addieren/subtrahieren oder den Zugriff zu steuern,

noch hab ich den Zugriff mit einer if abfrage gesteuert z.B. bei files/list

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
1. / 2. / ... 
 
if($punkte_user $punkte_benötigt){
echo 
"sieh haben zu wenig punkte";
}else{

//HIER DER NORMALE QUELLTEXT DER LIST.PHP

//Zum schluss musste ich noch die schleife abschließen mit }
}

nun möchte ich das ganze in eine funktion basteln nur kann ich hier keine schleife verwenden,
hab schon gedacht ich machs mit break, funktioniert zwar nur bringt er mir eine komplett weiße Seite
mit dem Text drin, was klar is da alles ja abgebrochen wird.

hat jemand ne idee wie ich dies lösen könnte mit nur einer funktion




------------------
<- Mein Counterstrike Video ->

Zuletzt editiert von Zage am 28.07.2008 um 11:13 Uhr (2x Editiert)
Inaktiv
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 1 - 28.07.2008 um 11:59 Uhr
hi,
ich versteh nicht was du willst.
von was für einer schleife sprichst du?
was willst du mit break machen, also was genau willst du beenden?

gruß
duRiel


Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 2 - 28.07.2008 um 12:44 Uhr
also,
in meiner mods/files/list.php

ist folgender quelltext

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
1. / 2. / ... 

<?php
// ClanSphere 2008 - www.clansphere.net
// $Id: list.php 101 2006-07-12 09:36:29Z hajo $
// PUNKTEPRÜFUNG START/////////////////////////////////////////////////////

//Hier werden die Punkte abgefragt $punkte_user, $punkte_benoetigt

if($punkte_user $punkte_benoetigt)
{
    echo 
"Sie haben leider nur ".$punkte." Punkte, <br>
Sie benötigen "
.$punkte_benoetigt." Punkte um Zugriff auf ".$modul." zu haben!";
}
else {

// PUNKTEPRÜFUNG STOP/////////////////////////////////////////////////////
// AB HIER STEHT DER EIGENTLICHE QUELLTEXT DER LIST.PHP
$cs_lang cs_translate('files');

echo 
cs_html_table(1,'forum',1);
echo 
cs_html_roco(1,'headb');
echo 
$cs_lang['mod'];
echo 
cs_html_roco(0);
echo 
cs_html_roco(1,'leftb');
echo 
$cs_lang['mod_list'];
echo 
cs_html_roco(0);
echo 
cs_html_table(0);
echo 
cs_html_br(1);

$where "categories_mod = 'files' AND categories_access <= '" $account['access_files'] . "' AND categories_subid = '0'";
$categories_data cs_sql_select(__FILE__,'categories','*',$where,'categories_name',0,0);
$categories_loop count($categories_data);

for(
$run=0$run<$categories_loop$run++) {

  echo 
cs_html_table(1,'forum',1);
  echo 
cs_html_roco(1,'headb');
  echo 
cs_link(cs_secure($categories_data[$run]['categories_name']),'files','listcat','where=' .          $categories_data[$run]['categories_id']);
  
$content cs_sql_count(__FILE__,'files',"categories_id = '" $categories_data[$run]['categories_id'] . "'");
  echo 
' ('$content .')';
  echo 
cs_html_roco(0);

  if(!empty(
$categories_data[$run]['categories_text'])) {
    echo 
cs_html_roco(1,'leftb');
    echo 
cs_secure($categories_data[$run]['categories_text'],1);
    echo 
cs_html_roco(0);
  }
  
  
$sub_where "categories_mod = 'files' AND categories_access <= '" $account['access_files'] . "'";
  
$sub_where .= " AND categories_subid = '" $categories_data[$run]['categories_id'] . "'";
  
$sub_data cs_sql_select(__FILE__,'categories','*',$sub_where,'categories_name',0,0);
  
$sub_loop count($sub_data);
  if(!empty(
$sub_loop)) {
    echo 
cs_html_roco(1,'leftc');
    echo 
'Unterkategorien: ';
    for(
$runb=0$runb $sub_loop$runb++) {
      echo 
cs_link(cs_secure($sub_data[$runb]['categories_name']),'files','listcat','where=' $sub_data[$runb]['categories_id']);
      
$sub_content cs_sql_count(__FILE__,'files',"categories_id = '" $sub_data[$runb]['categories_id'] . "'");
      echo 
' (' $sub_content ')';
      if(
$runb == $sub_loop -1) { } else { echo ', '; }
    }
    echo 
cs_html_roco(0);
  }
  echo 
cs_html_table(0);
  echo 
cs_html_br(1);
}
//// PUNKTEPRÜFUNG START//////////////////////////////////////////////////////////////////////////////////
}
//// PUNKTEPRÜFUNG STOP//////////////////////////////////////////////////////////////////////////////////
?>


wie du sehen kannst befindet sich zum schluss doch die geschweifte Klammer } zum schließen der if abfrage (else)

nun bin ich dabei ein function zu coden von mir aus

cs_punkteaccess($modul){
//daten aus db holen
if($punkte_user < $punkte_benoetigt)
{
echo "Sie haben leider nur ".$punkte." Punkte, <br>
Sie benötigen ".$punkte_benoetigt." Punkte um Zugriff auf ".$modul." zu haben!";
break;
}

so würde es zwar funkz aber die function stoppt dann wirklich alles, sprich die ausgabe steht dann auf ner weißen seite mit nur den text ohne layout, daher meine frage, gibts noch nen anderen weg als mit
meiner ersten if else abfrage

hoffentlich verstehst es jetzt ^^


------------------
<- Mein Counterstrike Video ->

Inaktiv
|
fay-pain


Specialist




Beiträge: 2006
# Antwort: 3 - 28.07.2008 um 13:17 Uhr
wieso willst du denn alles abbrechen?

mach doch einfach deine abfrage da und dahinter klemmst du noch ne bedingung wenn genügend punkte vorhanden sind, dann ... mach das oder das... oder du kürzt das mit else

warum so umständlich?^^


------------------
Manchmal hast du fay und machmal pain.
- hajo

Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 4 - 28.07.2008 um 13:40 Uhr
muss ich wohl mit else arbeiten, schade, dachte ich könnte irgendwie die list.php vorzeitig abbrechen, ohne das das layout draufgeht


------------------
<- Mein Counterstrike Video ->

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 5 - 28.07.2008 um 13:52 Uhr
macht er doch sowieso

 
1.
2.
3.
4.
5.
1. / 2. / ... 
 if($punkte_user $punkte_benoetigt)
{
    echo 
"Sie haben leider nur ".$punkte." Punkte, <br>
Sie benötigen "
.$punkte_benoetigt." Punkte um Zugriff auf ".$modul." zu haben!";
}

danach ist für die PHP File schluss, mehr wird nicht ausgeführt


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 6 - 28.07.2008 um 14:14 Uhr
doch, er führt danach den normalen code von der list.php aus, der danach kommt, ausser ich machs mit else{ LIST-CODE }

aber dann kann ichs nicht mit ner function machen


------------------
<- Mein Counterstrike Video ->

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 7 - 28.07.2008 um 14:17 Uhr
jojo is klar, else muss schon rein, aber ich frage mich, was du an ner function für vorteile sieht ?

if .. else ... ist hierfür einfacher und sinnvoller


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 8 - 28.07.2008 um 14:44 Uhr
jo, mach ich es so...

wird wahrscheinlich das beste sein


------------------
<- Mein Counterstrike Video ->

Inaktiv
|
Pred


Poststar




Herkunft: Bischofsmais
Beiträge: 762
# Antwort: 9 - 28.07.2008 um 14:48 Uhr
ich hab das immer so gemacht, wenn ich wollte das ein user etwas nicht sieht:

 
1.
2.
3.
4.
5.
6.
7.
1. / 2. / ... 

<?php  
if(abfrage) {
cs_redirect('Du hast nicht genügend Punkte','modname','actionname');
}
hier der eigcode
?>


Wenn nun die abfrage erfüllt wird (also muss ja ne negative abfrage rein, wie du es eh hast), dann wird der User auf die ensprechende Seite geleitet und es wird ein Fehler Code ausgegeben... dazu muss du halt den platzhalter {head:message} einbauen, damit er angezeigt wird

dazu folgender Code:

 
1.
1. / 2. / ... 
<?php $data['head']['message'] = cs_getmsg(); ?>


Vllt. hilft dir ja das was ^^


------------------


Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 10 - 28.07.2008 um 14:50 Uhr
ja, so ist es gut, genau sowas hab ich gesucht, dankeschön


------------------
<- Mein Counterstrike Video ->

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 11 - 28.07.2008 um 15:10 Uhr
kannste auch mit echo cs_subtemplate arbeiten, einmal für keinen access, und einmal mit access und den einstellungen.

spart wiederum eine php datei.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Zuletzt editiert von Fr33z3m4n ClanSphere Team am 28.07.2008 um 15:10 Uhr (1x Editiert)
Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 12 - 29.07.2008 um 08:47 Uhr
also ein erfolgserlebnis hab ich schon, leider nur mit der debug.php
mit dieser funktioniert es

habs nach Pred´s variante probiert,
mit der debug.php wird die meldung ausgegeben, wenn ich es
mit der index.php probier bleibt die url (beim files-bereich) auf index.php&mod=files und hab ne weiße seite anstatt der url index.php&mod=punkte$action=zugriff

woran liegt das?


------------------
<- Mein Counterstrike Video ->

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 13 - 29.07.2008 um 09:37 Uhr
mit der debug müsste eigentlich eine fehlermeldung erscheinen.
link ?


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 14 - 29.07.2008 um 09:42 Uhr
mach es grad lokal am xampp, vielleicht liegts ja an dem, die debug zeigt keine fehler...

EDIT: hab hier keinen Zugriff auf ftp und das akuelle Punktesystem is noch nicht online/eingearbeitet


------------------
<- Mein Counterstrike Video ->

Zuletzt editiert von Zage am 29.07.2008 um 09:42 Uhr (1x Editiert)
Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 15 - 29.07.2008 um 09:44 Uhr
dyndns

ansonsten mach es mit cs_subtemplate

if
...
echo cs_subtemplate(__FILE__,$data,'themesordner','keinzugrifftpl');
else
...
echo cs_subtemplate(__FILE__,$data,'deinthemesordner','deinethemesdate i');


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 16 - 29.07.2008 um 09:51 Uhr
das wollt ich verhindern, da ich um zugriffe zu steuern nur
eine zeile in die datei eintragen muss, wo der zugriff gesteuert wird (z.B. gallery/list.php), sonst nichts
in dieser function werden punkte addiert/abgezogen oder eben zugriffe gesteuert. alles mit
einer function, daher ist cs_redirect das sinnvollste

ich hätte ja schon eine lösung, aber möchte es mit nur einer zeile machen z.B.

cs_punktesystem('zugriff','files') //Steuerung Zugriff


oder bei Punktabzug

cs_punktesystem('-','files') //Punktabzug bei download


Die Funktionen + und - arbeiten bereits, liegt nur noch am zugriff, denke auch das cs_redirect der richtige weg ist


------------------
<- Mein Counterstrike Video ->

Zuletzt editiert von Zage am 29.07.2008 um 09:52 Uhr (1x Editiert)
Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 17 - 29.07.2008 um 09:57 Uhr
was denn der vorteil von cs_redirect, das er nur beim falschen zugriff auf ne datei weiterleitet, die ebenfalls den gleichen inhalt enthält, als wenn du gleich cs_subtemplate machst


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 18 - 29.07.2008 um 10:02 Uhr
ich möcht die gallery/list.php so lassen wie sie ist, und nur im oberen bereich meine function aufrufen
dies kann ich nicht mit subtemplate lösen, da der code unter der function einfach ausgeführt wird
deshalb möcht ich durch redirect einfach auf ne andere seite weiterleiten, wo nur "Sie haben zu wenig Punkte" steht (also echo getmsg(); )


EDIT: die gallery/list.php arbeitet nichtmal mit subtemplate


------------------
<- Mein Counterstrike Video ->

Zuletzt editiert von Zage am 29.07.2008 um 10:06 Uhr (1x Editiert)
Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 19 - 29.07.2008 um 10:06 Uhr
ok, jetzt hab ich es verstanden

dann schick mir mal deinen geänderten files per eMail, dann schau ich mal schnell drüber woran der Fehler liegen könnte.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Zage
Thread-Ersteller


King for a day





Beiträge: 283
# Antwort: 20 - 29.07.2008 um 11:24 Uhr
hab dir ne email mit den nötigen dateien geschick.

danke schonmal, vielleicht findest du nen fehler

Gruß
Zage


------------------
<- Mein Counterstrike Video ->

Inaktiv
|

Dieses Thema wurde von TeQu!La ClanSphere Team PM geschlossen.

Antworten: 30
Seite [1] 2 >