anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Fr 29 Mär, 2024 13:28

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do 02 Aug, 2007 11:02 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 01 Apr, 2007 09:31
Beiträge: 155
Hallo ihr!

In ein paar Skirpten nutze ich sehr viele addnavs (manchmal 50+ auf einer Seite) und da gehen schnell die Buchstaben aus. Wenn das geschieht fügt das LoGD gerne einfach Sachen wie "`HO" usw. in den Nav ein oder er wird einfach mal komplett grün.

Aus diesen Gründen und da es an einigen Stellen einfach keinen Sinn macht einen Hotkey zu haben würde ich die Funktion gerne für einige Skriptstellen (keine ganzen Skripte) deaktivieren.

Ich hoffe in der addnav die richtige Stelle gefunden zu haben:

[php] $key="";
if (substr($text,1,1)=="?") {
// check to see if a key was specified up front.
if ($accesskeys[strtolower(substr($text, 0, 1))]==1){
// output ("key ".substr($text,0,1)." already taken`n");
$text = substr($text,2);
}else{
$key = substr($text,0,1);
$text = substr($text,2);
//output("key set to $key`n");
$found=false;
for ($i=0;$i<strlen($text); $i++){
$char = substr($text,$i,1);
if ($ignoreuntil == $char){
$ignoreuntil="";
}else{
if ($ignoreuntil<>""){
if ($char=="<") $ignoreuntil=">";
if ($char=="&") $ignoreuntil=";";
if ($char=="`") $ignoreuntil=substr($text,$i+1,1);
}else{
if ($char==$key) {
$found=true;
break;
}
}
}
}
if ($found==false) {
if (strpos($text, "__") !== false)
$text=str_replace("__", "(".$key.") ", $text);
else
$text="(".strtoupper($key).") ".$text;
$i=strpos($text, $key);
// output("Not found`n");
}
}
//
}
if ($key==""){
for ($i=0;$i<strlen($text); $i++){
$char = substr($text,$i,1);
if ($ignoreuntil == $char) {
$ignoreuntil="";
}else{
if (($accesskeys[strtolower($char)]==1) || (strpos("abcdefghijklmnopqrstuvwxyz0123456789", strtolower($char)) === false) || $ignoreuntil<>"") {
if ($char=="<") $ignoreuntil=">";
if ($char=="&") $ignoreuntil=";";
if ($char=="`") $ignoreuntil=substr($text,$i+1,1);
}else{
break;
}
}
}
}
if ($i<strlen($text)){
$key=substr($text,$i,1);
$accesskeys[strtolower($key)]=1;
$keyrep=" accesskey=\"$key\" ";
}else{
$key="";
$keyrep="";
}
//output("Key is $key for $text`n");
if ($key==""){
//$nav.="<a href=\"".HTMLEntities($link.$extra)."\" class='nav'>".appoencode($text,$priv)."<br></a>";
//$key==""; // This is useless
}else{
$text=substr($text,0,strpos($text,$key))."`H".$key."`H".substr($text,strpos($text,$key)+1);
if ($pop){
$quickkeys[$key]=popup($link.$extra);
}else{
$quickkeys[$key]="window.location='$link$extra';";
}
}[/php]

Nun setze ich an der betreffenden Stelle im Skript vor die navs

[php]$_SESSION['session']['hotkeyaus']=1;[/php]

und erweitere die Abfrage

[php]if ($key==""){[/php]

auf

[php]if ($key=="" && $_SESSION['session']['hotkeyaus']!=1){[/php]

Leider hat die Variable keinen Wert und die Abfrage geht schief.
Könnt ihr mir da weiterhelfen?


LG,

Song Sinen

_________________
I <3 Eliwood
_______________
$a=b;
$b=a;
$$a=a;
_______________
Faust: Was ist mit diesem Rätselwort gemeint?
- Faust I, Z. 1337


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 02 Aug, 2007 18:09 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Setze einen weiteren Parameter in der Funktion, der normalerweise den Wert TRUE hat. Nur wenn kein Hotkey in diesem nav verwendet werden soll, wird der Wert auf FALSE gesetzt.

Die Abfrage könntest du dann irgendwie so gestalten:
[php]if ((isset($key)) && ($schluessel_anzeigen == TRUE)){ [/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 02 Aug, 2007 21:36 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 01 Apr, 2007 09:31
Beiträge: 155
8) Jup, hat geklappt!
Dankeschön!

Für alle dies auch mal machen wollen:

[php]$_SESSION['session']['hotkeyaus']=1;
Hierher die Navs die keinen Hotkey haben sollen.
$_SESSION['session']['hotkeyaus']=0;
[/php]

[php] $hotkeyanzeigen=TRUE; // Hotkeys aus Anfang
if ($_SESSION['session']['hotkeyaus']==1)$hotkeyanzeigen=FALSE;
if ($hotkeyanzeigen==TRUE){
if ($key==""){
for ($i=0;$i<strlen($text); $i++){
$char = substr($text,$i,1);
if ($ignoreuntil == $char) {
$ignoreuntil="";
}else{
if (($accesskeys[strtolower($char)]==1) || (strpos("abcdefghijklmnopqrstuvwxyz0123456789", strtolower($char)) === false) || $ignoreuntil<>"") {
if ($char=="<") $ignoreuntil=">";
if ($char=="&") $ignoreuntil=";";
if ($char=="`") $ignoreuntil=substr($text,$i+1,1);
}else{
break;
}
}
}
}
if ($i<strlen($text)){
$key=substr($text,$i,1);
$accesskeys[strtolower($key)]=1;
$keyrep=" accesskey=\"$key\" ";
}else{
$key="";
$keyrep="";
}
//output("Key is $key for $text`n");
if ($_SESSION['session']['hotkeyaus']==1)$hotkeyanzeigen=FALSE;
if ($key=="" && $hotkeyanzeigen==TRUE){
//$nav.="<a href=\"".HTMLEntities($link.$extra)."\" class='nav'>".appoencode($text,$priv)."<br></a>";
//$key==""; // This is useless
}else{
$text=substr($text,0,strpos($text,$key))."`H".$key."`H".substr($text,strpos($text,$key)+1);
if ($pop){
$quickkeys[$key]=popup($link.$extra);
}else{
$quickkeys[$key]="window.location='$link$extra';";
}
}
} // Hotkeys aus Ende[/php]
und diese kleine Änderung in der Addnav (Am Anfang und am Ende)

_________________
I <3 Eliwood
_______________
$a=b;
$b=a;
$$a=a;
_______________
Faust: Was ist mit diesem Rätselwort gemeint?
- Faust I, Z. 1337


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 23 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum