Seite 4 von 5
Verfasst: 12.11.2002 15:43
von Fitnessboarder
WOW good work
..also wenn ein Kategorie Titel z.B. so aussieht:
.::Kategorie 1::.
muss ich dann alle ":" mit einem "\" auskommentieren?
Verfasst: 12.11.2002 15:51
von Fitnessboarder
Ui ui ui.. also das mit dem [$i] statt dem [$j] scheint nicht zu funktionieren:
Code: Alles auswählen
#-----[ OPEN ]------------------------------------------
#
/index.php
#
#-----[ FIND ]------------------------------------------
#
'CAT_DESC' => $category_rows[$i]['cat_title'],
#
#-----[ REPLACE WITH ]------------------------------------------
#
'CAT_DESC' => get_lang_desc($category_rows[$i]['cat_title'], $board_config['default_lang']), // EDITED BY
Verfasst: 12.11.2002 15:54
von saerdnaer
und dann noch eine optimierung in der functions.php:
suche:
ersetzen durch:
Code: Alles auswählen
function get_lang_desc($desc, $lang)
{
static $backup;
if ( empty($desc) )
{
return '';
}
if ( !strpos(' ' . $desc, '|') && !strpos(' ' . $desc, ':') )
{
return $desc;
}
if ( !isset($backup[$desc]) )
{
$desc_array = explode('|', $desc);
$c_desc = count($desc_array);
for ( $i = 0; $i < $c_desc; $i++ )
{
$desc = $desc_array[$i];
$strlen = strlen($desc);
while ( substr($desc, $strlen - 1, 1) == "\\" )
{
$i++;
$desc = substr($desc, 0, $strlen - 1) . $desc_array[$i];
}
list($key, $value) = explode(':', $desc, 2);
if ( empty($value) )
{
$value = $key;
$key = 'else';
}
else
{
$key = strtolower(trim($key));
}
$desc_by_lang[$key] = $value;
}
if ( !isset($desc_by_lang[$lang]) )
{
if( isset($desc_by_lang['else']) )
{
$lang = 'else';
}
else if( isset($desc_by_lang['english']) )
{
$lang = 'english';
}
else
{
$lang = 0;
}
}
$backup[$desc] = $desc_by_lang[$lang];
}
return $backup[$desc];
}
Verfasst: 12.11.2002 16:13
von Fitnessboarder
Man bekommt einen parse error in der "viewforum.php", wenn man diesen Code verwendet:
$page_title = $lang['View_forum'] . ' - ' . get_lang_desc($forum_row['forum_name'];
so ist es richtig:
Code: Alles auswählen
$page_title = $lang['View_forum'] . ' - ' . get_lang_desc($forum_row['forum_name'], $board_config['default_lang']);
Was jetzt bloss noch offen ist, warum es mit den Kategorie Namen nicht funzt...?
Verfasst: 13.11.2002 15:19
von saerdnaer
hmm warum was wird den angezeigt?
Verfasst: 13.11.2002 16:14
von Fitnessboarder
Also Kategorie Bezeichnungen sehe ich im Moment gar nicht...
weder beim Index noch in der Combobox im Suchfenster..
--------------
okay hat sich geklärt, es lag nur an den Bezeichnungen
zB ".::Kategorie1::." mit den ganzen (Doppel-)Punkten!
also wenn ich die Punkte nicht wegnehmen möchte wie sollte das
dann aussehen? Ich probier's jetzt mal einfach mit
"\.\:\:Kategorie1\:\:\.|english:\.\:\:Category1\:\:\."
hmm ich komm nicht drauf....

Verfasst: 14.11.2002 14:55
von saerdnaer
eigendlich sollten die doppelpunkte nichts ausmachen...
welche php version benutzt du?
ah
Verfasst: 14.11.2002 15:05
von Fitnessboarder
Auf meinem Server läuft PHP Version 4.1.2
also
ohne Doppelpunkte funktioniert's wunderbar..

Verfasst: 15.11.2002 15:01
von saerdnaer
hmm eigendlich sollte die explode funktion mir einem limit von 2 nur zwei teile ausgeben. die limit funktion gibts ja schon seit version 4.0.1...
naja dann machen wirs halt anders...
suche in der functions.php:
ersetzen durch:
Code: Alles auswählen
function get_lang_desc($desc, $lang)
{
static $backup;
if ( empty($desc) )
{
return '';
}
if ( !strpos(' ' . $desc, '|') && !strpos(' ' . $desc, ':') )
{
return $desc;
}
if ( !isset($backup[$desc]) )
{
$desc_array = explode('|', $desc);
$c_desc = count($desc_array);
for ( $i = 0; $i < $c_desc; $i++ )
{
$desc = $desc_array[$i];
$strlen = strlen($desc);
while ( substr($desc, $strlen - 1, 1) == "\\" )
{
$i++;
$desc = substr($desc, 0, $strlen - 1) . $desc_array[$i];
}
if ( !($pos = strpos($desc, ':')) )
{
$value = $desc;
$key = 'else';
}
else
{
$key = strtolower(trim(substr(0, $pos)));
$value = substr($desc, $pos + 1);
}
$desc_by_lang[$key] = $value;
}
if ( !isset($desc_by_lang[$lang]) )
{
if( isset($desc_by_lang['else']) )
{
$lang = 'else';
}
else if( isset($desc_by_lang['english']) )
{
$lang = 'english';
}
else
{
$lang = 0;
}
}
$backup[$desc] = $desc_by_lang[$lang];
}
return $backup[$desc];
}
ah
Verfasst: 16.11.2002 17:10
von Fitnessboarder
Okay 2 kleine Syntaxfehler sind da drin
Code: Alles auswählen
$desc
if ( !($pos = strpos($desc, ':')) )
{
$value = $desc;
$key = 'else';
}
else
{
$key = strtolower(trim(substr(0, $pos));
hinterm $desc fehlt ein ";" und in der letzten zeile ")".
Ansonsten funktionierts jetzt mit "::Kategorie1::", aber nicht
mehr mit ".::Kategorie1::." irgendwie stören da die Punkte...