Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zawartość wybranego elementu jednej tablicy w drugiej
patryk9200
post
Post #1





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

Ostrzeżenie: (0%)
-----


Witam!

Posiadam stronę internetową, którą postanowiłem przerobić na wersje wielojęzyczną.
Uzyłem do tego tablic:

'language' => array('Wybierz język: ', 'Select Language: ', 'Sprache auswählen: ', 'Choisissez la langue: ', 'Selecteer taal: '),
'plogowania' => array('Podaj dane do logowania w systemie', 'Enter details to log on', 'Geben Sie Details um sich über das System', 'Sil vous plaît soumettre votre login', 'Gelieve uw login'),

którą to mam zapisaną w pliku lang.php.

Aby wyświetlić wybrany element po przełączeniu języka wpisuje echo lang('plogowania');
Posiadam również inną tablicę z zaincludowanym plikiem lang.php:

'a8' => array ( 'id' => 10, 'nazwa' => 'Język', 'fieldname' => 'a8', 'pole' => 'listaRP' , 'checked' => 'first' ),

do której to w miejsce 'Język' muszę przekazać dane z tablicy pierwszej po przełączeniu języka. Próbowałem np. tak:

'a8' => array ( 'id' => 10, 'nazwa' => ''.lang('language').'', 'fieldname' => 'a8', 'pole' => 'listaRP' , 'checked' => 'first' ),

ale z jakiegoś powodu zwraca mi puste pole. Jak to rozwiązać? albo jak w inny sposób pobierac wybrane elementy tablicy1 do tablicy2??

Dodam jeszcze, że skrypt jest zrobiony identycznie jak ten na stronie: http://www.webday.pl/viewtopic.php?f=46&p=3542

Wszystko działa poza elementami z tej drugiej tablicy ;/

Ten post edytował patryk9200 7.02.2009, 01:17:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
patryk9200
post
Post #2





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

Ostrzeżenie: (0%)
-----


ok
A więc tak tak wygląda kod tabeli w której muszę podmienić język:
CODE
include "lang.php";

$panel_komisu = array ( 'Osobowe' => array ( ''.lang("osobowe").'' => array ( 'id' => 1, 'nazwa' => ''.$marka.'', 'fieldname' => 'marka_osobowe', 'pole' => 'lista_marka' , 'checked' => 'first' ),
'model_osobowe' => array ( 'id' => 2, 'nazwa' => 'Model', 'fieldname' => 'model_osobowe', 'pole' => 'lista_model' , 'checked' => 'first' ),
'wersja'=> array ( 'id' => 2, 'nazwa' => 'Wersja modelu, itp...', 'fieldname' => 'wersja', 'pole' => 'input1' , 'maxlength' => 20 ),
'stats' => array ( 'id' => 110, 'nazwa' => 'Liczba wy¶wietleń', 'fieldname' => 'stats', 'pole' => 'input1' , 'maxlength' => 7 ),
'numer' => array ( 'id' => 111, 'nazwa' => 'Numer ogłoszenia', 'pole' => 'input1' ), ), ?>




Z tak wygląda kod odpowiedzialny za podmienianie danych:

CODE
<?php


if ($_GET['lang']){
setcookie('lang', $_GET['lang'], time()+12*2592000);
};


if ($_GET['lang']){ //jeśli wybrano zmianę języka, aktualizuje ciastko.
setcookie('lang', $_GET['lang'], time()+12*2592000);
};

function lang($zm){
if (isset($_COOKIE['lang']) && !isset($_GET['lang'])) { // sprawdzamy czy istnieje ciastko LANG i czy nie wysłano przypadkiem polecenia zmiany języka. Jeśli się zgadza to ustawiamy zmienną na zawartość ciastka.

$tong = $_COOKIE['lang'];
}
elseif($_GET['lang']){ // jeśli zostało wysłane polecenie zmiany języka, aktualizujemy ciastko oraz ustawiamy zmienną na tą wartość. Przez to unikam konieczności odświeżania strony, po każdym kliknięciu zmiany języka
$tong = $_GET['lang'];
}
else { //jeśli ktoś nie dokonał wcześniej wyboru języka
$tong = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
};
//------------czesc II------------------
switch ($tong) {
case 'pl': $tong = 0; break;
case 'en': $tong = 1; break;
case 'de': $tong = 2; break;
case 'fr': $tong = 3; break;
case 'nl': $tong = 4; break;
// tu dodajemy deklaracje kolejnych wersji językowych

default: $tong = 0; break;
}
//------------czesc III------------------

$lang = Array(

//---------------------poprawność wyświetlania różnych wersji językowych---------------------------

'jezykstrony' => array("<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-pl' content='pl' /></head>", "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-en' content='en' /></head>", "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-de' content='de' /></head>", "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-fr' content='fr' /></head>", "<head><meta http-equiv='Content-Type' content='text/html; charset=windows-1250' /><meta http-equiv='Content-nl' content='nl' /></head>"),


//------------------------------------------administracja------------------------------------------

"marka" => array('marka', 'mark', 'ABS', 'ABS', 'ABS'),

'tstatus' => array('Twój status:', 'Type of Account:', 'Art des Kontos:', 'Type de compte:', 'Type account:'),
'menu' => array('Menu', 'Menu', 'Menü', 'Menu', 'Menu'),

);
return $lang[$zm][$tong];

};
?>






A tak wygląda kod odpowiedzialny za wyświetlanie danych na stronie:

CODE

<?

$page = $_GET['page'];
$id = $_GET['id'];

$section = $_POST['section'];
$action = $_POST['action'];
$special = $_POST['special'];

if ($page == 'add' && $action == 'save' && !$special)
{
foreach ($_POST as $key => $value)
$$key = $value;
}


if (!$marka)
$marka = 0;
if (!$model)
$model = 0;


// ================================================================================
=================================================================
// ============================================================== osobowe ===========================================================================
// ================================================================================
=================================================================
if ($section == 1)
{
if ($action == 'save')
{
if (!$errtext)
{
$errtext = CheckVerifyForm($section);
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
{
$errtext = CheckWarrningForm($section);
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
{
$errtext = CheckVerifyDaneKontatkoweForm('BezLogowania');
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
{
$errtext = CheckVerifyTelefonyForm('BezLogowania');
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
{
$errtext = CheckVerifyEmailForm('BezLogowania');
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
$ogloszenie -> Zapamietaj($_POST);
$_SESSION['ogloszenie'] = $ogloszenie;

// if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status != 1 && !$print)
// var_export ($ogloszenie);

}

if (($action == 'save' && $errtext) || ($action == 'create') || ($action == 'edit'))
{
echo '<div id="search">
<form action="?page='.$page.'&id='.$id.'" method="post">
<input type="hidden" name="section" value="'.$section.'">
<input type="hidden" name="action" value="save">
<table width="535" cellpadding=0 cellspacing=0>
<tr>
<td colspan="3" style="border: solid #828282; border-width: 0px 0px 2px 0px;">
<h1>Podstawowe parametry pojazdu</h1>
</td>
</tr>
<tr>
<td width="179">
<b>';
ShowPanelLabel($section, 'marka_osobowe');
echo '</b><br>';
ShowPanel($section, 'marka_osobowe', $marka_osobowe); // pokaz marke



i dalszy ciąg kodu odpowiedzialnego za wyswietlanie danych:
CODE
echo ' </td>
<td width="179">
<b>';
ShowPanelLabel($section, 'model_osobowe');
echo '</b><br>';
ShowPanel($section, 'model_osobowe', $model_osobowe); // pokaz model
echo ' </td>
<td width="179">
<b>';
ShowPanelLabel($section, 'wersja');
echo '</b><br>';
ShowPanel($section, 'wersja', $wersja);
echo ' </td>
<td>
<b>';
ShowPanelLabel($section, 'a17');
echo '</b><br>';
ShowPanel($section, 'a17', $a17);

echo ' </td>
<td>
<table cellpadding=0 cellspacing=0 width=100%><tr><td>';
ShowPanelLabel($section, 'a18');
if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status > 1)
{
echo ' </td><td>';
ShowPanel($section, 'a18a', $a18a);
}
echo ' </td><td>';
ShowPanel_SP($section, 'a18', $a18);

echo ' </td>
<td>';
ShowPanel($section, 'a64', $a64);
ShowPanelLabel($section, 'a64');


CODE
echo ' </td>
</tr>
<tr>
<td>
<table cellpadding=0 cellspacing=0 width=100%><tr><td>';
ShowPanelLabel($section, 'a34');
if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status > 1)
{
echo ' </td><td>';
ShowPanel($section, 'a34a', $a34a);
}
echo ' </td><td>';
ShowPanel_SP($section, 'a34', $a34);

ShowPanel($section, 'a111', $a111);
ShowPanelLabel($section, 'a111');
echo ' </td>
<td>
<table cellpadding=0 cellspacing=0 width=100%><tr><td>';
ShowPanelLabel($section, 'a72');
if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status > 1)
{
echo ' </td><td>';
ShowPanel($section, 'a72a', $a72a);
}
echo ' </td><td>';
ShowPanel_SP($section, 'a72', $a72);

<tr>
<td>';
ShowPanel($section, 'a53', $a53);
ShowPanelLabel($section, 'a53');
echo ' </td>
<td>
<table cellpadding=0 cellspacing=0 width=100%><tr><td>';
ShowPanelLabel($section, 'a15');
if ($_SESSION['panel'] -> lo && $_SESSION['panel'] -> pa && $_SESSION['panel'] -> status > 1)
{
echo ' </td><td>';
ShowPanel($section, 'a15a', $a15a);
}
echo ' </td><td>';
ShowPanel_SP($section, 'a15', $a15);
echo ' </td>
</tr>';

include ('addkontaktkrok2.php3');

echo '</table>
</form>
</div>';
}
}
else


if ($section == 2)
{
if ($action == 'save')
{
if (!$errtext)
{
$errtext = CheckVerifyForm($section);
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
{
$errtext = CheckWarrningForm($section);
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}



CODE
if (!$errtext)
{
$errtext = CheckVerifyDaneKontatkoweForm('BezLogowania');
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
{
$errtext = CheckVerifyTelefonyForm('BezLogowania');
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
{
$errtext = CheckVerifyEmailForm('BezLogowania');
if ($errtext)
echo '<table width="535"><tr><td align="center" class="warrning">'.$errtext.'</td></tr></table>';
}

if (!$errtext)
$ogloszenie -> Zapamietaj($_POST);
$_SESSION['ogloszenie'] = $ogloszenie;
}

if (($action == 'save' && $errtext) || ($action == 'create') || ($action == 'edit'))
{

echo '<div id="search">
<form action="?page='.$page.'&action=save&id='.$id.'" method="post">
<input type="hidden" name="section" value="'.$section.'">
<input type="hidden" name="action" value="save">
<table width="535">
<tr>
<td colspan="3" style="border: solid #828282; border-width: 0px 0px 2px 0px;">
<h1>Podstawowe parametry pojazdu</h1>
</td>
</tr>
<tr>
<td width="179">
<b>';
ShowPanelLabel($section, 'markainput');
echo '</b><br>';
ShowPanel($section, 'markainput', $markainput); // pokaz marke
echo ' </td>
<td width="179">
<b>';
ShowPanelLabel($section, 'modelinput');
echo '</b><br>';
ShowPanel($section, 'modelinput', $modelinput);
echo ' </td>
<td width="179">
<b>';
ShowPanelLabel($section, 'a1');
echo '</b><br>';
ShowPanel($section, 'a1', $a1);


include ('addkontaktkrok2.php3');

echo '</table>
</form>
</div>';
}
}

?>



Zadeklarowałem język strony, dodałem do kodu tablicy oraz panelu dodawania ogłoszeń:
echo lang('jezykstrony'); w której mam zadeklarowane jezyki w zalezności od wybranego.
Z niewiadomych przyczyn zwraca mi teraz wartość "Array" a powinno co innego.
... ;/

Ten post edytował patryk9200 7.02.2009, 09:46:59
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 02:47