Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 12
Seite [1]
Pappnase123


Wannabe poster




Beiträge: 22
# Thema - 27.10.2010 um 11:45 Uhr
Hi Community,

ich habe ein Menu angelegt in dieser index datei von dem template. da hat auch alles wunderbar funktioniert.Jetzt habe ich bestimmten Usern bestimmte rechte gegeben. Wenn ein User jetzt nicht das recht hat, eine Seite aufzurufen, steht da sowas wie, "du hast nicht die richtigen Rechte, oder ..." Kann man es denn nicht einfach so machen, dass bestimmte Dinge, die für bestimmte USer gesperrt sind, nicht immer im Menu angezeigt werden? Also dass das MEnu für jede Userruppe spezifisch ist, je nachdem, wie es die Rechte sagen....?

Inaktiv
Tom08 ClanSphere Team

Supporter
Supporter



Herkunft: Daheim
Beiträge: 2923
# Antwort: 1 - 27.10.2010 um 15:01 Uhr
Also grundsätzlich ist das nicht möglich, da das Menü in Clansphere nicht dynamisch ist.

ABER:

1. Erstelle eine neue Datei mit dem Namen mnu.php in /mods/users/.
2. Füge darin folgendes ein:
 
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.
1. / 2. / ... 
<?php


$array 
= array(
        
=> array(
            array(
'url' => 'news_recent:id=1''title' => 'Letzte News'),
            array(
'url' => 'board_toplis''title' => 'Beste User')
            ),
        
=> array(
            array(
'url' => 'news_recent''title' => 'Letzte News'),
            array(
'url' => 'board_toplist''title' => 'Beste User'),
            array(
'url' => 'users_home''title' => 'Users Home')
            ),
        
=> array(
            array(
'url' => 'wars_view:id=1''title' => 'Letzte News'),
            array(
'url' => 'board_toplist''title' => 'Beste User'),
            array(
'url' => 'users_home''title' => 'Users Home'),
            array(
'url' => 'clansphere_admin''title' => 'Admin')
            )
      );
            
            echo 
$account['access_id'];
for(
$run=0$run count($array[$account['access_id']]); $run++){
    
$url explode(':',$array[$account['access_id']][$run]['url']);
    
$url2 explode('_',$url['0']);
    
    
    if(!empty(
$url[1])){
        echo 
cs_link($title,$url2[0],$url2[1],$url[1]);
        
//echo '<li class="sub"><a href="' . cs_url($url2[0],$url2[1],$url[1]) . '" class="link">' . $title . '</a></li>';
    
}else{
        echo 
cs_link($title,$url2[0],$url2[1]);
        
//echo '<li class="sub"><a href="' . cs_url($url2[0],$url2[1]) . '" class="link">' . $title . '</a></li>';
    
}
    
}


3. Passe das Array oben an.
Wichtig: Achte darauf, die Kommas genau wie oben zu setzen.

Wie ist das Array aufgebaut?
Am Anfang steht die Zahl, diese ist für den jeweiligen Zugriff. Beim Standard-CSP sind 5 Zugriffe "vordefiniert".
Besucher haben den Zugriff 1, Benutzer 2 ... Admins 5.
Danach folgt ein weiteres array, das wiederum Unterarrays hat.
In jedem dieser Unterarrays gibt es nun zwei Werte zu definieren.
1. URL
2. Titel.
Die URL ist jeweils im Format mod_action:sonstiges anzugeben, Beispiele s.o.

4. Binde an gegebener Stelle in deinem Template (/templates/[TEMPLATE]/index.htm) die mnu.php via {users:mnu} ein.
[5. Gegenenfalls die Ausgabe des Links noch anpassen. Ich habe beispielhaft oben mal eine alternative Link erstellung auskommentiert hinzugefügt.]

lG


------------------
Bei Problemen mit Code von mir bitte eine Private Nachricht an mich


Inaktiv
|
SlayR ClanSphere Team


Geekboy




Herkunft: Calbe (Saale)
Beiträge: 1133
# Antwort: 2 - 27.10.2010 um 18:47 Uhr
@Tom: genialer Ansatz! könnte man sowas nicht auch fest in Clansphere integrieren, mit Array's die per Options angelegt werden und in der Datenbank hinterlegt werden? Das kommt dan den Menu-boxes von Joomla! & Co ziemlich nahe!


------------------
--- CLANSPHERE ---
Professional clan care starts here


Inaktiv
|
Tom08 ClanSphere Team

Supporter
Supporter



Herkunft: Daheim
Beiträge: 2923
# Antwort: 3 - 27.10.2010 um 19:06 Uhr
Müsste ich mal gucken. Ich versprech' aber erstmal nichts.

Also grundsätzlich könnte man das natürlich auch mit Datenbank-Verbindung basteln, sollte dann aber die Abfrage oder am besten das fertige Menü cachen, weil man sonst u.U. sehr viele Datenbankverbindungen hat.

Liebe Grüße


------------------
Bei Problemen mit Code von mir bitte eine Private Nachricht an mich


Inaktiv
|
SlayR ClanSphere Team


Geekboy




Herkunft: Calbe (Saale)
Beiträge: 1133
# Antwort: 4 - 27.10.2010 um 19:11 Uhr
Dafür bietet sich doch das Caching System von Clansphere an oder? klar flinker läufts dann wahrscheinlich noch mit APC & Co. Ich mein, ich hatte letztens nen Thread in dem jemand von Clansphere wieder abspringen wollte, weil er mit der Templateanpassung (dabei gings um Navlists) nicht klarkam. Anfänger würden es aber erheblich leichter haben die von Ihnen benötigten Funktionen ins Menü zu heben und gleichzeitig kann man alles für den jeweiligen Zugriff nicht-relevantes ausblenden. Ich finde den Gedanken irgendwie geil!


------------------
--- CLANSPHERE ---
Professional clan care starts here


Zuletzt editiert von SlayR ClanSphere Team am 27.10.2010 um 19:14 Uhr (1x Editiert)
Inaktiv
|
Pappnase123
Thread-Ersteller


Wannabe poster




Beiträge: 22
# Antwort: 5 - 27.10.2010 um 20:42 Uhr
hi slayer...der im forum, der abspringen wollte, war ich XD
ich hatte clanspehre neu und hatte nur das webinterface gefunden...an quelltext hatte ich garnicht gedacht...


Inaktiv
|
zeipet


Wannabe poster




Beiträge: 25
# Antwort: 6 - 17.12.2011 um 18:02 Uhr
Obwohl der Thread schon sehr alt ist erlaube ich mir hier eine Frage:

Ich hab den Code bei mir drinnen, nur leider wird bei mir die Variable 'title' nicht übernommen.
Ich habe alle links da so wies sein soll, nur ohne text.

Siehe da: http://www.zeipet.at/clansphere

Wäre super, die Lösung gefällt mir.

LG Peter


Inaktiv
|
Jam2 ClanSphere Team


Highlander





Beiträge: 3291
# Antwort: 7 - 18.12.2011 um 09:49 Uhr
unter

$url = explode(':',$array[$account['access_id']][$run]['url']);

das einfügen
 
1.
1. / 2. / ... 
     $title$account['access_id']][$run]['title'];


------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!


Zuletzt editiert von Jam2 ClanSphere Team am 18.12.2011 um 09:49 Uhr (2x Editiert)
Inaktiv
|
zeipet


Wannabe poster




Beiträge: 25
# Antwort: 8 - 18.12.2011 um 13:42 Uhr
Hallo! Danke für deine Antwort, aber wenn ich das mache kommt:
 
1.
1. / 2. / ... 
 Parse errorsyntax errorunexpected ']' in /var/www/clansphere/mods/users/mnu.php on line 26


Ich schätze es müsste irgendwo noch eine Klammer hin, hab aber keine Ahnung wo...

der Code:

 
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.
1. / 2. / ... 
<?php


$array 
= array(
        
=> array(
            array(
'url' => 'news_recent:id=1''title' => 'Letzte News'),
            array(
'url' => 'board_toplis''title' => 'Beste User')
            ),
        
=> array(
            array(
'url' => 'news_recent''title' => 'Letzte News'),
            array(
'url' => 'board_toplist''title' => 'Beste User'),
            array(
'url' => 'users_home''title' => 'Users Home')
            ),
        
=> array(
            array(
'url' => 'wars_view:id=1''title' => 'Letzte News'),
            array(
'url' => 'board_toplist''title' => 'Beste User'),
            array(
'url' => 'users_home''title' => 'Users Home'),
            array(
'url' => 'clansphere_admin''title' => 'Admin')
  )
      );

            echo 
$account['access_id'];
for(
$run=0$run count($array[$account['access_id']]); $run++){
    
$url explode(':',$array[$account['access_id']][$run]['url']);
    
$url2 explode('_',$url['0']);
    
$title$account['access_id']][$run]['title'];

    if(!empty(
$url[1])){
        
//echo cs_link($title,$url2[0],$url2[1],$url[1]);
        
echo '<a href="' cs_url($url2[0],$url2[1],$url[1]) . '" class="dark">' $title '</a>';
    }else{
        
//echo cs_link($title,$url2[0],$url2[1]);
        
echo '<a href="' cs_url($url2[0],$url2[1]) . '" class="dark">' $title '</a>';
    }

}



LG Peter


Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 9 - 18.12.2011 um 13:45 Uhr
$title= $account['access_id']][$run]['title'];

da ist eine klammer zuviel hinter access_id


Inaktiv
|
zeipet


Wannabe poster




Beiträge: 25
# Antwort: 10 - 18.12.2011 um 13:47 Uhr
Wenn ich die wegmache kommt folgendes:

 
1.
1. / 2. / ... 
 5 Fatal errorCannot use string offset as an array in /var/www/clansphere/mods/users/mnu.php on line 26


Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 11 - 18.12.2011 um 13:49 Uhr
aso ke, dann mach mal:
$title= $account['access_id']][$run]['title'];


zu:
$title= $array[$account['access_id']][$run]['title'];



Inaktiv
|
zeipet


Wannabe poster




Beiträge: 25
# Antwort: 12 - 18.12.2011 um 14:02 Uhr
Super! danke jetzt hats geklappt!
Danke!

Der Code


 
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.
1. / 2. / ... 
<?php


$array 
= array(
        
=> array(
            array(
'url' => 'news_recent:id=1''title' => 'Letzte News'),
            array(
'url' => 'board_toplis''title' => 'Beste User')
            ),
        
=> array(
            array(
'url' => 'news_recent''title' => 'Letzte News'),
            array(
'url' => 'board_toplist''title' => 'Beste User'),
            array(
'url' => 'users_home''title' => 'Users Home')
            ),
        
=> array(
            array(
'url' => 'wars_view:id=1''title' => 'Letzte News'),
            array(
'url' => 'board_toplist''title' => 'Beste User'),
            array(
'url' => 'users_home''title' => 'Users Home'),
            array(
'url' => 'clansphere_admin''title' => 'Admin')
  )
      );

            echo 
$account['access_id'];
for(
$run=0$run count($array[$account['access_id']]); $run++){
    
$url explode(':',$array[$account['access_id']][$run]['url']);
    
$url2 explode('_',$url['0']);
    
$title$array[$account['access_id']][$run]['title'];

    if(!empty(
$url[1])){
        
//echo cs_link($title,$url2[0],$url2[1],$url[1]);
        
echo '<a href="' cs_url($url2[0],$url2[1],$url[1]) . '" class="dark">' $title '</a>';
    }else{
        
//echo cs_link($title,$url2[0],$url2[1]);
        
echo '<a href="' cs_url($url2[0],$url2[1]) . '" class="dark">' $title '</a>';
    }
}





Zuletzt editiert von zeipet am 18.12.2011 um 14:02 Uhr (1x Editiert)
Inaktiv
|
Antworten: 12
Seite [1]


Sie müssen sich registrieren, um zu antworten.