Pagina 1 din 1

Variabila pt Schimbare limba intr-o functie

Scris: Sâm Feb 25, 2012
de claUdiu
Buna, am si eu o problema cu un mic script pentru schimbare limba.

IDeea este ca vreau sa fac un site cu mai multe limbi, care se schimba prin $_GET deocamdata.

In index.php am:

Cod: Selectaţi tot

<?php
$languag  = (isset($_GET['lng'])) ? $_GET['lng'] : '';
$language = (file_exists('languages/'.$languag.'.php')) ? ''.$_GET['lng'].'.php' : 'English.php'; 

//Files
include('languages/'.$language.'');
include("functions/DBconnect.php");
include("functions/Posts.php");

//DB Connect
DBconnect();

//Show Posts;
ShowPosts();
?>
Iar functia ShowPosts, aflata in Posts.php, este:

Cod: Selectaţi tot

function ShowPosts($id = null){
     if($id == null){
        $SelectPost = mysql_query("SELECT * FROM `news`") or die(mysql_error());

        while($show = mysql_fetch_assoc($SelectPost)){

            $id       = $show['nId'];
            $title    = $show['nTitle'];
            $content  = substr($show['nContent'],0 , 250);
            $date     = $show['nDate'];
            $category = $show['nCat'];

        echo '<a href="read.php?nid='.$id.'">'.$title.'</a> '.$post['posted'].' in <a href="category.php?cid='.$category.'">'.$category.'</a> on '.$date.' <br /> <br /> '.$content.' <br /> <br/>';

        }

     } else {

     }
}
 
IDeea este ca nu-mi schimba deloc limba. Nu arata nimic. $post['posted']; este extrasa din languages/Limba.php, care este setata in index.php. Dupa parerea mea, ar trebuii sa mearga... nu? Am incercat sa pun acea variabila in afara functiei, dar in acelas fisier, si tot nu merge...

Este prima oara cand fac un asemenea "sistem".... Poate ma puteti ajuta.
Thx.

Variabila pt Schimbare limba intr-o functie

Scris: Sâm Feb 25, 2012
de MarPlo
Salut
In interiorul unei functii poti folosi: variabile Globale ($_GET, $_POST, $_SESSION, $_REQUIRE), variabile definite direct in corpul functiei, sau variabile dintr-un fisier inclus direct in functie.
Deci, daca $post['posted'] e definita in afara functiei si vrei sa o folosesti in cadrul functiei, ar trebui sa o setezi ca $_GLOBAL. Cam asa:

Cod: Selectaţi tot

function numeFunctie() {
  GLOBAL $post['posted'];
  // ...
}
Sau poti transfera datele la functie intr-un parametru:

Cod: Selectaţi tot

function numeFunctie($post) {
  // ...
}

// apelare functie
numeFunctie($post['posted']);
Sau, daca datele din fisierul inclus nu iti trebuiesc si in alta parte in afara functiei, decat doar in ea, poti include fisierul php unde e setata acea variabila cu limba direct in functie:

Cod: Selectaţi tot

function numeFunctie() {
  include('numefisier.php');
  // ...
}