Seite 4 von 5

Verfasst: 12.11.2002 15:43
von Fitnessboarder
WOW good work 8)

..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:

Code: Alles auswählen

function get_lang_desc($desc, $lang)
{
[...]
}
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.... :cry:

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:

Code: Alles auswählen

function get_lang_desc($desc, $lang)
{
[...]
}
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...