| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
danielsen
Data înscrierii: 14/Feb/2004
Mesaje: 104
Locație: Cluj-Napoca
|
| Trimis: Joi Iul 10, 2008 4:48 pm Titlul subiectului: clasa php pt limba [rezolvat] |
|
|
Am functia urmatoare pt schimbat limba pe site si vreau sa o folosesc intr-o clasa php, am nevoie de exemplu cum s-ar putea aplica intr-o clasa:
Cod: // functie pentru limba
function text($nr) {
switch ($_SESSION['lang']) {
case 'ro':
$txt[0] = 'Despre noi';
$txt[1] = 'Produse';
$txt[2] = 'Contact';
etc...
break;
case 'en':
$txt[0] = 'About us';
$txt[1] = 'Products';
$txt[2] = 'Contact us';
etc...
break;
}
return $txt[$nr];
}
// limba implicita: ro
if (!isset($_SESSION['lang'])) {
$_SESSION['lang'] = 'ro';
}
if (isset($_GET['lang'])) {
$_SESSION['lang'] = $_GET['lang'];
}
In context apelez cu echo text(0); (output: Despre noi), text(1); (output: Produse), si asa mai departe. As vrea sa fac o clasa cu functia asta si un exemplu de instantiere. Ma ajuta cineva? |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2607
Locație: Bucuresti
|
| Trimis: Joi Iul 10, 2008 5:10 pm Titlul subiectului: |
|
|
imi este prea lene acum sa scriu o clasa, ia si citeste si daca nu te descurci pune codul cu ce ai facut sa te corectam
[url=http://www.tutoriale.far-php.ro/index.php?p=Clase%20%26%23351%3Bi%20obiecte%20%26icirc%3Bn%20PHP
]Clase și obiecte în PHP[/url]
Succes |
|
| Sus |
|
danielsen
Data înscrierii: 14/Feb/2004
Mesaje: 104
Locație: Cluj-Napoca
|
| Trimis: Joi Iul 10, 2008 5:46 pm Titlul subiectului: |
|
|
Dupa mine, ar veni ceva de genul:
Cod: class Limba {
var $txt;
function lng() {
//aici afisarea...
}
// functie pentru limba
function text($nr) {
switch ($_SESSION['lang']) {
case 'ro':
include 'lang/ro.php';
break;
case 'en':
include 'lang/en.php';
break;
}
return $txt[$nr];
}
// limba implicita: ro
if (!isset($_SESSION['lang'])) {
$_SESSION['lang'] = 'ro';
}
if (isset($_GET['lang'])) {
$_SESSION['lang'] = $_GET['lang'];
}
}
Dar nu am idee cum sa o fac sa iasa ceva de genul $this->txt(1); bla bla...
PS: am bagat textele pt fiecare limba separate in fisiere ro.php si en.php, sper sa nu fie problema. |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2607
Locație: Bucuresti
|
| Trimis: Joi Iul 10, 2008 5:59 pm Titlul subiectului: |
|
|
pai logica e asa
$this->o_functie(1)
tu apelezi o functie din interiorul clasei cu un parametru in cazul de fata apelezi functia o_functie cu parametru 1
in interiorul clasei tu ai functia aia care returneaza ceva... acel ceva trebuie apoi ori sa il afisezi pe ecran ori sa il pasezi la alta functie din cadrul clasei care sa afiseze ce a returnat prima functie... |
|
| Sus |
|
danielsen
Data înscrierii: 14/Feb/2004
Mesaje: 104
Locație: Cluj-Napoca
|
| Trimis: Joi Iul 10, 2008 6:03 pm Titlul subiectului: |
|
|
Pai atunci ii simplu, nu mai bag si functia lng(), fac doar
$lang = new Limba;
echo "<div>" . $lang->text(1) . "</div>";
Ar fi corect asa? |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2607
Locație: Bucuresti
|
| Trimis: Joi Iul 10, 2008 6:10 pm Titlul subiectului: |
|
|
uite aici un alt exemplu ca sa intelegi mai bine
Introducere în Clase PHP |
|
| Sus |
|
danielsen
Data înscrierii: 14/Feb/2004
Mesaje: 104
Locație: Cluj-Napoca
|
| Trimis: Joi Iul 10, 2008 7:04 pm Titlul subiectului: |
|
|
Mda, sa zicem ca am inteles cat de cat.
include 'includes/lang.class.php';
$lng = new Limba;
echo $lng->text(3);
Merge. Functia era deja, tot ce trebuia era sa o bag intr-o clasa. Ma intereseaza si pt ca mai tarziu o sa am nevoie sa extind clasa. Oricum o sa mai recitesc tutorialele. Sunt f.bune, mai ales ca tu esti autorul, daca nu ma insel. Mersi mult. |
|
| Sus |
|
alin4lex
Data înscrierii: 01/Iun/2005
Mesaje: 124
Locație: Bucuresti
|
| Trimis: Joi Iul 10, 2008 9:26 pm Titlul subiectului: |
|
|
downloadeaza elf-php si vezi cum e facut (cauta in library/libraries/Language.php)
user guide: http://www.elf-php.com/user_guide/language.html
download: http://www.elf-php.com/download.html |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |