E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Adobe Flash

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

GRAFICA 2D  /  Adobe Flash  /  Comunicare cu XML (3)

Realizarea unei carti de oaspeti (GuestBook)

12.11.2008
Realizarea unei carti de oaspeti (GuestBook)

In acest tutorial vom invata cum sa modificam un fisier XML folosind serverul PHP si atunci nu va mai trebui nici macar sa editam fisierul XML pentru adaugarea unei noi persoane, toate acestea fiind posibile de realizat dintr-o interfata WEB.

Total vizualizari: 15355 15355 afisari   |   Comentarii  1   |   Rating   |   (7 voturi)   |   Timp necesar: 30 min 30 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  Thor.info.uaic.ro  
Autor:  Cosmin Varlan
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
« 1 2 34 »
comenteaza printeaza

In continuare trebuie sa verificam daca fisierul in care stocam mesajele (care se va numi "mesaje.xml") exista deja pe hard-disk si in caz contrar sa cream acest fisier in format XML:

<?php if (!file_exists("mesaje.xml")){
    $doc = new_xmldoc('1.0');
    $root = $doc->add_root('mesaje');
    $filename="mesaje.xml";
    $fp = @fopen($filename,'w');
    if(!$fp) {
        die(mesaj_eroare=Nu pot crea fisierul XML');
    }
    fwrite($fp,$doc->dumpmem());
    fclose($fp);
}?>

Dupa acest pas fiserul va fi gasit si va putea fi deschis (fie din cauza ca tocmai a fost creat fie din cauza ca deja exista).Pentru a deschide fisierul trebuie sa ne folosim de comanda
domxml_open_file care din pacate necesita calea completa catre fisier. Din
acest motiv avem nevoie sa definim valoarea PATH ca mai jos. In cazul in
care calea unde ati stocat dumneavoastra „mesaje.xml” nu corespunde cu
cea data mai jos, modificati-o pentru a pointa spre locul unde este stocat
fisierul dumneavoastra:

<?php
define ("PATH", 'c:\apache2\htdocs\guestbook\');
if (!$doc = domxml_open_file(PATH . "mesaje.xml")) {
    echo " mesaj_eroare=Eroare la deschidere XML";
    exit;
}?>

Acum vom adauga o variabila care sa pointeze spre radacina documentului, variabila prin intermediul careia vom putea adauga noile valori:

<?php
$root = $doc->document_element(); //acum $root va pointa
// spre "mesaje"

Ne vom folosi în continuare de "new_child" pentru a adăuga un nod nou (respectiv un nod cu numele "mesaj" dar a cărui conţinut va fi format din alte noduri pe care le vom adăuga de asemenea folosind "new_child":

<?php
$mesaj_nou = $root->new_child('mesaj','');
<br />// în continuare adaugam nodul "nume" nodului "mesaj":
$nume_ = $mesaj_nou->new_child('nume',$nume);
<br />// adaugam nodul "msg" nodului mesaj:
$mesaj_ = $mesaj_nou->new_child('msg',$msg);
<br />// memoram ora transmiterii mesajului:
$data_=$mesaj_nou->new_child('data',$data);
<br />// adaugam nodul "identificare" nodului "mesaj":
$identificare_= $mesaj_nou->new_child ('identificare','');
<br />// adaugam nodul "IP" nodului "identificare":
$ip_ = $identificare_->new_child('ip',$ip);
$mail_ = $identificare_->new_child('mail',$mail);
$web_ = $identificare_->new_child('web',$web);
?>

Acum, in variabila $doc vor fi retinute tot arborele XML. Pentru a-l putea vizualiza sau scrie pe HardDisk ne vom folosi de functia dumpmem(). Modul de scriere a fisierului pe HDD este clasic si nu insistam asupra functiilor implicate, in final vom inchide scriptul PHP prin utilizarea marcajului final "?>":

<?php
$filename="mesaje.xml";$fp = @fopen($filename,'w');
if(!$fp) {
    die(' mesaj_eroare=Nu pot crea fisierul XML');
}
fwrite($fp,$doc->dumpmem());
fclose($fp);
echo "mesaj_eroare=OK";
?>

Salvati scriptul de mai sus cu numele "adauga.PHP" si copiati-l in directorul in guestbook din htdocs. Executati acest PHP de mai multe ori, scriind in browser: http://localhost/guestbook/adauga.PHP si apasând repetat "refresh". In acest mod veti crea un XML ce va contine mai multe norudi.

Dupa fiecare executie ar trebui sa obtineti o pagina care sa contina "mesaj=OK" si sa gasiti in directorul guestbook un fisier XML "mesaje.xml" care sa contina variabilele definite la inceputul PHP-ului (eventual de mai multe ori).

Scriptul PHP va rula pe server dar avem nevoie de o aplicatie de tip client care sa comunice datele (numele, mesajl, etc.). Aplicatia de pe client poate fi un formular HTML (caz in care aplicatie este mult spus) sau poate fi un obiect Flash.

Obiectul Flash va fi construit in trei parti (nu vom adauga un preloader la acest flash deorece este destul de mic si mesajele nu sunt - in general - foarte multe). Prima parte este cea care va afisa toate mesajele si este cea care va apare atunci când Flash-ul va fi deschis in browser. Partea a doua este constituita dintr-un formular care are rolul de a transmite datele catre PHP-ul construit mai devreme iar cea de-a treia parte va afisa un mesaj de confirmare (sau de eroare).

Vom construi guest-book-ul incercând sa folosind atât script cât si constructii grafice.

Drept constructii grafice veti realiza trei imagini reprezentând un plic, un glob pamântesc respectiv un cursor pentru scroll. Primele doua imagini vor reprezenta legaturi catre e-mailul respectiv pagina web a celui ce a postat mesajul (daca au fost introduse). Dupa ce au fost redimensionate la 12x12 pixeli, imaginile vor fi transformate in MovieClip (indiferent ca sunt imagini scalare - importate in Flash sau imagini vectoriale) si li se vor da ca nume de legatura valorile "pictograma_mail", "pictograma_web" respectiv "cursor_scroll".

Pentru inceput vom incarca fisierul XML (cel ce contine mesajele) si-l vom afisa. Urmatorul cod este cel mai banal atunci când vrem sa incarcam un obiect XML dintr-un fisier extern (nu vom incerca sa interpretam inca datele ci doar sa afisam continutul. Flashul pe care il veti crea va fi salvat in acelasi director in care este si fisierul XML si se va numi "guestbook.fla". Initial vom defini doar obiectul XML si vom afisa continutul sau.

Fisierul XML nu se va incarca instant de pe server; orice persoana care a utilizat vreodata internetul stie ca in anumite momente datele se incarca mai repede, alte dati mai incet. Dupa ce am dat comanda catre server sa ne trimita fisierul ce contine mesajele nu ne putem astepta ca la instructiunea imediat urmatoare informatiile sa fie deja la client. Din acest motiv ne vom folosi de evenimente - cum ar fi eventimentul incarcarii XML-ului in memorie. Codul (care va fi pus in primul cadru al unui nou document Flash) este urmatorul:

var mesaje = new XML();
mesaje.ignoreWhite = true;
mesaje.onLoad = function() {
trace (mesaje.toString());
};
mesaje.load("mesaje.xml");

In prima linie de cod se aloca memorie pentru obiectul XML, se ignora spatiile albe din cadrul XMLului (unui om ii este mai usor sa inteleaga continutul unui fisier XML daca este structurat asa cum este structurat mai sus... calculatorul nu are nevoie ca datele sa fie aliniate, mai mult spatiile albe precum tab-ul sau spatiul dauneaza interpretarii corecte a obiectului XML - acest lucru este valabil in Flash). In momentul incarcarii complete a XMLului in memorie se va executa (automat) functia "onLoad" care va afisa continutul obiectului XML. In finalul codului mai trebuie sa dam comanda serverului sa ne trimita fisierul XML: mesaje.load("mesaje.xml");

Ceea ce vrem noi sa facem este mai mult decât doar sa afisam XMLul. Trebuie sa formatam informatia sa apara cum ne place noua. Ştergeti codul initial (el a fost pus doar pentru a testa daca fisierul XML se incarca corect) si sa incercam sa scriem codul pentru adevaratul guestbook. Pentru inceput vom face câteva initializari:

_root._lockroot = true;
 
//dimensiunea scenei:
_root.maxx = Stage.width-1;
_root.maxy = Stage.height-1;
 
// tipurile de text cu care vom scrie in guestbook:
var textformat = new TextFormat("tahoma", 11, 0, false);
textformat.color = 0x003366;
var textformat_nume = new TextFormat("tahoma", 11, 0, true);
textformat_nume.color = 0x003333;
var textformat_data = new TextFormat("tahoma", 11, 0, false);
textformat_data.color = 0x003333;
 
//un obiect XML si o functie asociata incarcarii:
var mesaje = new XML();
mesaje.ignoreWhite = true;

In aceasta portiune din cod am setat proprietatea lockroot a scenei ca fiind adevarata. Aceasta proprietate este necesara pentru ca player-ul Flash sa stie unde trebuite sa incarce datele. Daca Flash-ul pe care tocmai il construiti va fi ulterior atasat (prin intermediul comenzii loadMovie) altui obiect Flash exista pericolul ca cele doua "root-uri" (al Flash-ului ce incarca respectiv din cel incarcat) sa se confunde. Prin blocarea radacinii8 obiectului Flash se evita aceasta problema.

Pagina:
« 1 2 34 »
comenteaza printeaza
Alte tutoriale Adobe Flash:
Noteaza acest tutorial
Rating tutorial
 
(7 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (1) spune-ti parerea
misterio misterio , Duminica, 14 Februarie 2010, ora 22:08
#1

Extraordinar ... chiar avem nevoie. Foarte util acest tutorial.

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
5190
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
5145
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4990
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4975
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
4735
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Vista Javascript Sony Vegas Lightroom SEO Outlook Swift 3D Powerpoint Excel Python Bridge Flash JSON Word Gimp MySQL COREL DRAW Ruby on Rails XML PSD AJAX Verilog RoR Dreamweaver SWF Photoshop Fotografie HTML CSS StyleSheet XHTML Fireworks PHP Java Illustrator Action Script
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software