anpera.net
https://anpera.homeip.net/phpbb3/

Shortcuts deaktivieren
https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=4400
Seite 1 von 1

Autor:  Bill Tür [ Di 18 Mär, 2008 08:37 ]
Betreff des Beitrags:  Shortcuts deaktivieren

Nachdem Kasbergia sich nun wieder wie der Phönix aus der Asche erhoben hat, haben wir uns entschlossen, auch ein paar Partnerschaften einzugehen.

Blöderweise werden die schicken Farbcombos unserer Partnerserver durch die markierten Shortcutbuchstaben empfindlich gestört.

In der Dragonslayer Version können die unterdrückt werden, aber das nachzuvollziehen geht über meinen Hobbyscripterhorizont hinaus. Kann mir das wer mal in ein paar einfachen Worten erläutern, so dass ich das auch hinkrieg?

Autor:  Nightborn [ Di 18 Mär, 2008 10:17 ]
Betreff des Beitrags:  Re: Shortcuts deaktivieren

addnav(" ?Name",$link);

tuts nicht?

Autor:  Bill Tür [ Di 18 Mär, 2008 10:34 ]
Betreff des Beitrags:  Re: Shortcuts deaktivieren

Leider nicht. das sieht dann so aus:

( )Server 1
Server 2

und beim zweiten wird ganz normal der nächste freie Buchstabe wieder markiert.

Autor:  MySql [ Di 18 Mär, 2008 12:25 ]
Betreff des Beitrags:  Re: Shortcuts deaktivieren

Solange der bestimmte Buchstabe nicht vergeben ist, bzw. so lange ein Buchstabe noch frei ist den du in den Namen hast, wirst du diese 'Shortcuts' haben.
Kommen automatisch.

Ich hab mir damit abhilfe geschaft, Funktion additem, 1, kann ich so Bilder (Votings etc.) und oder kleine Texte unter den Navs anzeigen lassen, ohne das sie einen Naveffekt haben...Ist 'ab und zu ganz nützlich'

Grüße,
My.

Autor:  Nightborn [ Di 18 Mär, 2008 12:41 ]
Betreff des Beitrags:  Re: Shortcuts deaktivieren

Sich ne eigene Funktion schreiben, die ganz böse dran vorbeihackt, ist keine Lösung.

Ok, dann mußt mal beim addnav() guggen, wo die Shortcuts generiert werden =) ist ja kein Unding.

Autor:  Bill Tür [ Di 18 Mär, 2008 12:58 ]
Betreff des Beitrags:  Re: Shortcuts deaktivieren

Wie gesagt, in der Dragonslayer-Version isses drin. Siehe Code weiter unten. Muss diese Funktion $hotkey sein. Aber wie ich die in meine function addnav reinfriemel, is mir nicht ganz klar...

PHP:
function addnav($text,$link=false,$priv=false,$pop=false,$newwin=false,$hotkey=true)
{
global $nav,$session,$accesskeys,$REQUEST_URI,$quickkeys;
if ($link===false)
{
$nav.=templatereplace('navhead',array('title'=>appoencode($text,$priv)));
}
elseif (empty($link))
{
$nav.=templatereplace('navhelp',array('text'=>appoencode($text,$priv)));
}
else
{
if (!empty($text))
{
$extra='';
if ($newwin===false)
{
if (strpos($link,'?'))
{
$extra='&c='.$session['counter'];
}
else
{
$extra='?c='.$session['counter'];
}
}

if ($newwin===false)
{
$extra.='-'.date('His');
}
//$link = str_replace(" ","%20",$link);
//hotkey for the link.
if($hotkey) {
$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;
$int_strlen = strlen($text);
for ($i=0;$i<$int_strlen; $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 (empty($key))
{
$int_strlen = strlen($text);
for ($i=0;$i<$int_strlen; $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!='')
{
$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'";
}
}
}
$nav.=templatereplace('navitem',array(
"text"=>appoencode($text,$priv),
"link"=>HTMLEntities($link.$extra),
"accesskey"=>$keyrep,
"popup"=>($pop==true ? "target='_blank' onClick=\"".popup($link.$extra)."; return false;\"" : ($newwin==true?"target='_blank'":""))
));
//$nav.="<a href=\"".HTMLEntities($link.$extra)."\" $keyrep class='nav'>".appoencode($text,$priv)."<br></a>";
}
$session['allowednavs'][$link.$extra]=true;
$session['allowednavs'][str_replace(' ', '%20', $link).$extra]=true;
$session['allowednavs'][str_replace(' ', '+', $link).$extra]=true;

return($link.$extra);
}
}



Hier zum Vergleich meine function addnav:

$this->bbcode_second_pass_code('', '
function addnav($text,$link=false,$priv=false,$pop=false,$newwin=false){
global $nav,$session,$accesskeys,$REQUEST_URI,$quickkeys;
$text = translate($text);
/*
if (date("m-d")=="04-01"){
$text = borkalize($text);
}
*/
if ($link===false){
$nav.=templatereplace("navhead",array("title"=>appoencode($text,$priv)));
}elseif ($link === "") {
$nav.=templatereplace("navhelp",array("text"=>appoencode($text,$priv)));
}else{
if ($text!=""){
$extra="";
if ($newwin===false) {
if (strpos($link,"?")){
$extra="&c=$session[counter]";
}else{
$extra="?c=$session[counter]";
}
}

if ($newwin===false) $extra.="-".date("His");
//$link = str_replace(" ","%20",$link);
//hotkey for the link.
$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';";
}
}
$nav.=templatereplace("navitem",array(
"text"=>appoencode($text,$priv),
"link"=>HTMLEntities($link.$extra),
"accesskey"=>$keyrep,
"popup"=>($pop==true ? "target='_blank' onClick=\"".popup($link.$extra)."; return false;\"" : ($newwin==true?"target='_blank'":""))
));
//$nav.="<a href=\"".HTMLEntities($link.$extra)."\" $keyrep class='nav'>".appoencode($text,$priv)."<br></a>";
}
$session[allowednavs][$link.$extra]=true;
$session[allowednavs][str_replace(" ", "%20", $link).$extra]=true;
$session[allowednavs][str_replace(" ", "+", $link).$extra]=true;
}
}
')

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/