Jump to content
php.lv forumi

nemec

Reģistrētie lietotāji
  • Posts

    698
  • Joined

  • Last visited

Everything posted by nemec

  1. krikuli, savu personīgo podu vari izvietot kaut vai uz griestiem, par samaksu es domāju jebkurš santehniķis tev to nodrošinās. Šeit iet runa par web lapu ko būs jālieto citiem cilvēkiem, nevis tev vienam pašam. Ja gribi analoģiju ar podiem, tad varam salīdzināt publisko tualeti. Ja tev (klientam) ienāk prātā novietot tualeti griestos (vai vēl kāda perversija), tad protams es kā santehņikis (programmētājs) pateikšu tev, ka tas nav prāta darbs.
  2. Amēram tādā veidā: <div style="background:url('super-perverse-input-file.png');width:100px;height:50px;overflow:hidden;position:relative;"> <input type="text" class="prieksh-faila-nosaukuma-attelosanas" /> <input style="opacity:0;width:200px;height:100px;position:absolute;top:0;left:0;" type="file" /> </div> Jāpiebilst par jūsu cepšanos "klienta: MAN VAJAG". Laikam tieši tāpēc arī man nepatīk taisīt mājas lapas klientiem. Ja es taisu ar kādu kompanjonu mājas lapu. Un ja es neredzu potenciālu tai fīčai, ko mans kompanjons ir izdomājis (no programmēšanas viedokļa neredzu jēgu ieguldīt daudz laika priekš kāda sviesta), tad tā arī pasaku. Ja viņam vajag, tad lūdzu ej pie cita profesionāla un sadarbojies ar viņu. Tie jūsu klienti ir galīgi izlepuši. Ja man tā klients prasītu kādu sūdu, piemēram <select> partaisīšanu, tad es arī droši vien viņu pasūtītu pie citiem profesionāļiem :)
  3. Var uzlikt <input type="file" /> cssā opacity:0, tad apakšā pabāzt kādu dizaina elemenu un ar JS nodetektēt failu nosakumu un attēlot (šeit ir mazliet pārlūku atšķirības). Ja baigi vajag, tad var arī izmantot flešu http://digitarald.de/project/fancyupload/ . Lieki piebilst, ja izmanto flešu, tad failu nāksies lādēt pirms submit pogas (ko darīsim, ja klients tam nepiekrīt?). Tādiem sīkumiem (failu ielāde) fleš developeri nemaz nevajag, ja nu vienīgi kādā aprobežotā kantorī, kur katrs dara vienīgi savu darbu (piemēram neko citu izņemot PHP). Normālā gadījumā, web developerim nebūs problēmu izurbties 30 rindiņu AS kodā (vai kādā citā).
  4. normālā variantā tam visam būtu jāizskatās tā: forma iekš html: <form class="otherButton" method='post' action='http://web/parsing/index.php/parser-input'> <input type='hidden' name='pcode' value='as-%c'> <button type="submit">Paprsēt</button> </form> JavaScript (mootools): $$('form.otherButton).each(function(el){ var button = el.getElement('button'); (new Element('span', { 'text': button.get('text') , 'events':{ 'click': function(){ el.submit(); } } })).replaces(button); });
  5. nezinu, kur var samācīties tādas perversijas <a href="javascript:;" onclick="this.parentNode.submit()"></a> : D Ja tā nav saite, tad var izmantot tādu tagu kā <span> (vai kādu citu, ja vajag specifisku noformējumu), un nevajadzēs kaut kādas perversijas rakstīt iekš atribūta href <span onclick="this.parentNode.submit()"></span> Un protams Eventu onclick jāliek atsevišķā failā, bet tas jau cits stāsts
  6. vēl gribēju piebilst par trafiku sakarā ar frameworkiem (mootools, jquery un pārējie). Googlam ir http://code.google.com/apis/ajaxlibs/documentation/ , kas dod iespēju lādēt bibliotēku no google serveriem. Sanāk, ja lietotājs jau ir kādu lapu apmeklējis, kas izmanto šo metodi. Tad nākošajās lapās bibliotēka tiks lādēta no keša. es atdalu tikai daļu html. Man sanāk 1-2 galvenie šabloni uz php, kas izvada galveni, kājeni, bet atstāj vietu dinamiskam saturam. Dinamiskajā saturā lādēju tīru HTML (bez perversijām, līdzīgas smarty). Dinamiski šabloni strādā pēc JavaScript šablonizatora principa. Protams var arī pilnībā atdalīt, bet 1-2 šabloni nav nekas tragisks. Lielākais ieguvums protams tīrs HTML. Un otrais, ka es varu tos pašus templatus izmantot arī JavaScriptā pie dinamiskas lapas ielādes. Kā trešo varu minēt, dizaineris-griezējs var bez problēmām pats tikt galā ar savu layoutu - nevis mani raustīt ar jautājumiem 'Kas tas {foreach $array}{/foreach}'. Man tāda pieeja neapmierina. Kā piemēru var apskatīt manu mazu lapiņu http://termi.lv/ (tā ir paša sākuma instalācija manam mvc+cms). Ielādējam templates, tas kods automātiski saliek kopā visus HTML templates no mapes, ko izmanto arī PHP kods, un saliek to funkcijā JStemplate. Šobrīd tur ir tikai viens templates 'self' ar saturu '<div class="self"></div>'. Bet protams var būt arī kaut vai simts templatu. Pārējot uz saites 'Uz trubenis', JavaScript apskatās saiti linkam /uz-trubenis/, pieliek parametru ?j, lai php saprot, ka pieprasa JSON. Ielādē instrukcijas no http://termi.lv/uz-trubenis/?j - kuru template lādējam un ko ar to daram. Sanāk, ka var taisīt divas versijas lapām - AJAX un HTML vienlaicīgi. Vēl man tur ir uzlikts HistoryManagers kas lieliski strādā populārākos pārlūkos - lietotājs var izmantot 'back', 'forward' un 'refresh' pogas. Kopumā sanāk dzenāt tikai nepieciešamos datus (JSON instrukcijas). Lapa paliek daudz vieglāka.
  7. es pret inline javascript jo: 1) piesārņojas html, priekš kam pārlūkam, kam nav vajadzīgs javascript ir jāgremo visādi lieki tagi - tas varētu būt bots (google), pārlūks ar atslēgtu javascriptu, telefons, ipods utt 2) ir diezgan neērti vēlāk pēc šabloniem meklēt konkrētas kļūdas un saliktus inline javascriptus. Salīdzinājumam, kad viss smuki salikts mapē /js/ 3) nav garantijas, ka kods strādās korekti. Ja piemēram izmantojam funkcijas ondomready, kad ir vajadzīgs lai viss saturs ir salādēts. Var rasties visādi neparedzēti gadījumi. 4) nav oop, nu bet tas laikam visiem pie dirsas :) 5) nu un protams lieks trafiks :) Kopumā visam jābūt atdalītam: JS savā mapē, CSS savā, HTML savā, PHP savā. Tad ir vieglāk sadarboties komandā, debugot kodus, strādāt ar vienu segmentu - html, css, js vai php, sadalīt programmētājus pa daļām uz segmentu utt. Es drīzāk gribētu dzirdēt priekšrocības inline javascripta
  8. tas nav nekāds top-secret, jo taisu kārtējo reizi savam priekam, tāpec protams iedošu visiem novērtēt attiecīgajā sadaļā. Vienīgā problēma, ka zole man ir tālu no primāriem uzdevumiem un visticamāk nenesīs nekādu materiālo labumu, tāpēc taisu es to baigi reti (šobrīd statuss ir 50% :)).
  9. Apache servera variantā nav vajadzīgs, jo php (kam patīk java, pythons utt) pats pa sevi tačū būs serveris. mysql vajadzīgs tikai lai saglabāt rezultātus, kas varētu notikt tikai partijas beigās, vai arī tad kad istaba ir tukša vai arī vispār neko nesaglabāt, ja nav vajadzīga statistika. Paliek tikai pats serveris, kas ir rakstīts kaut kādā valodā. Tādam serverim 600 pieprasījumi sekundē no klienta puses ir tīrais nieks :)
  10. Es teiktu tā, ka zolei nav kaut kādu dižu aprēķinu lai tur būtu vieta īpaši iespringst. Nedaudz sarežģītāk par čatu :). Tu @draugiem.lv zoli taisīji, ka tā aizstāvi, ka tur ir kaut kādas veikspējas nežēlīgas? Apskatījos, un tur sēž 1000 lietotāju. Vai tad tas ir daudz? Tik pat stabils, cik stabili ir flash socketi + flash komunikācija ar javascript. Aprēķinu man nav. Bet ne ar vienu, ne otru problēmas nav bijušas. Man ir tādas aizdomas, ka google wave tieši tā pat strādās.
  11. Ja esi labs draugs JavaScriptam, tad ar klienta daļu nevajadzētu būt problēmu. Ko tad nozīmē ne augstas veikspējas, speciāli sarakstīts sūda kods? un @draugiem.lv ir kāds rādītājs zoles taisīšanā? :) . Pats nesen saražoju servera daļu zolei, neiešu zīmēties, bet man tas aizņēma 2 dienas, pārējo laiku var atstāt testiem. Vispār šos laikus es ņēmu no savas pieredzes. Kad piebeigšu savu zoli, tad arī šeit kaut kur ielikšu saites. JavaScriptam var uzrakstīt tuneli caur flashu un lietot socketus cik vien gribi. AS2 kods: import flash.external.*; ExternalInterface.addCallback('socketConnect', null, xsocketConnect); ExternalInterface.addCallback('socketSendData', null, xsocketSendData); mySocket = new XMLSocket(); mySocket.onConnect = function(success) { if (success) { connectionStatus('established'); } else { connectionStatus('failed'); } }; mySocket.onClose = function() { connectionStatus('lost'); }; function xsocketConnect(p){ connectionStatus('connecting'); mySocket.connect(p.split(':')[0], p.split(':')[1]); } XMLSocket.prototype.onData = function(msg) { trace(msg); ExternalInterface.call(_root.fireCallback, ["socketOnData", msg]); }; function xsocketSendData(msg){ mySocket.send(msg); } function connectionStatus(msg){ trace(msg); ExternalInterface.call(_root.fireCallback, ["socketStatus", msg]); } ExternalInterface.call(_root.fireCallback, ["loaded"]); un MooTools plugins tam: Swiff.Connector = new Class({ Extends: Swiff, Implements: Events, options: { path: 'connector.swf', target: null, height: 1, width: 1, callBacks: null, host: 'localhost', port: '8080', params: { wMode: 'opaque', menu: 'false', allowScriptAccess: 'always' } }, initialize: function(options) { this.setOptions(options); if (this.options.callBacks) { Hash.each(this.options.callBacks, function(fn, name) { this.addEvent(name, fn); }, this); } this.options.callBacks = { fireCallback: this.fireCallback.bind(this) }; var path = this.options.path; if (!path.contains('?')) path += '?noCache=' + $time(); // cache in IE this.parent(path); // container options for Swiff class this.options.container = this.box = new Element('span', {'class': 'connector-box'}).inject($(this.options.container) || document.body); this.inject(this.box); }, fireCallback: function(fArg) { var name = fArg[0]; var args = fArg.length>1 ? fArg[1] : fArg[1]; this.fireEvent(name, args); }, connect: function(){ this.communicator().socketConnect(this.options.host+':'+this.options.port); }, send: function(msg){ this.communicator().socketSendData(msg); }, communicator: function() { var movieName = this.id; if (Browser.Engine.trident) { return window[movieName] } else { return document[movieName] } } }); Lietot to var šādi: var swiffConnector = new Swiff.Connector({ 'path': 'connector.swf' // as2 compiled code path , 'container': $('connector') // swf container , 'host': '192.168.1.51' , 'port': '9999' , onLoaded: function(){ //swf connector loaded } , onSocketStatus: function(status){ //possible status - 'connecting', 'lost', 'established', 'failed' } , onSocketOnData: function(dt){ //dt - data received from server } }); swiffConnector.send('some data');// send to host
  12. Vai ir kāds nopietns iemesls kāpēc jāizvēlas tieši flash? Vai tiks izmantota kaut kāda animācija vai vēl kādas fīčas, ko nespēj nodrošināt JavaScript? Bet ja no nulles, tad: 1) servera versiju varētu izveidot pa 4-8 dienām. Kas tikai atbild par spēli, saglabā katru partiju datubāzē. 2) servera daļu, kas skaita statistiku (punkti spēlē, izspēlētas spēles utt), varētu uztaisīt pa 2-4 dienām. 3) klienta variants varētu aizņemt 4-8 dienas. Kur ietilpst galda izvēle, galda spēle, ielogošanas daļa. Kopā sanāk 10-20 dienas = 80-160 stundas, ja prasa 10ls/h, tad sanāk no 800ls līdz 1600 ls.
  13. varbūt labak visu logot, un pēc tam ar tail comandu: tail -f access.log | grep -v "127.0.0.1" | grep -v "vai jebkāds nevēlams strings, piemēram MSIE"
  14. es tulkojumiem esmu paredzējis divas tabulas (tabulām ter_ ir tikai prefix) - languages un jf_content: CREATE TABLE `ter_languages` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) COLLATE utf8_latvian_ci NOT NULL DEFAULT '', `friend_url` varchar(20) COLLATE utf8_latvian_ci DEFAULT NULL, `default` tinyint(1) NOT NULL DEFAULT '0', `published` tinyint(1) NOT NULL DEFAULT '0', `ordering` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3; INSERT INTO `ter_languages` (`id`,`name`,`friend_url`,`default`,`published`,`ordering`) VALUES (1,'English','en',1,1,0), (2,'Latvian','lv',0,1,0); CREATE TABLE `ter_jf_content` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `language_id` int(11) NOT NULL DEFAULT '0', `reference_id` int(11) NOT NULL DEFAULT '0', `reference_table` varchar(100) COLLATE utf8_latvian_ci NOT NULL DEFAULT '', `reference_field` varchar(100) COLLATE utf8_latvian_ci NOT NULL DEFAULT '', `value` text COLLATE utf8_latvian_ci NOT NULL, `original_value` text COLLATE utf8_latvian_ci, `modified` datetime DEFAULT NULL, `modified_by` int(11) unsigned NOT NULL DEFAULT '0', `published` tinyint(1) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `search_index` (`language_id`,`reference_id`,`reference_table`,`reference_field`), KEY `reference_table_index` (`reference_table`) ) ENGINE=InnoDB AUTO_INCREMENT=4; INSERT INTO `ter_jf_content` (`id`,`language_id`,`reference_id`,`reference_table`,`reference_field`,`value`,`original_value`,`modified`,`modified_by`,`published`) VALUES (1,2,1,'menu','name','Sākuma lapa','Home page','2009-07-07 10:30:21',1,1), (2,2,1,'menu','friend_url','index','index','2009-07-07 10:30:21',1,1); CREATE TABLE `ter_menu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` varchar(25) DEFAULT 'm', `name` varchar(100) DEFAULT '', `friend_url` varchar(16) DEFAULT NULL, `description` text NOT NULL, `parent_id` int(10) NOT NULL DEFAULT '0', `component` varchar(250) NOT NULL DEFAULT 'self', `template` varchar(250) NOT NULL, `published` tinyint(1) NOT NULL DEFAULT '0', `modified` datetime DEFAULT NULL, `params` text NOT NULL, `ordering` int(11) DEFAULT '0', PRIMARY KEY (`id`), KEY `published` (`published`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; INSERT INTO `ter_menu` (`id`,`type`,`name`,`friend_url`,`description`,`parent_id`,`component`,`template`,`published`,`modified`,`params`,`ordering`) VALUES (1,'m','Home page','index','some text',0,'self','',1,'2009-07-06 17:11:49','',0) tabulu menu pievienoju kā paraugu, un te ir tikai viens ieraksts. Iztulkots ieraksts (tabulai menu) kolonnai `name` un `friend_url` glabājas tabulā jf_content kā divi ieraksti. Kad padošu pieprasījumu "SELECT `id`, `name`, `friend_url` FROM `ter_menu`" savai uzrakstītai klasei, un ja būs iesetota latviešu valoda šai klasei, tad automātiski tiks aizvietoti `name` un `friend_url` ieraksti no tabulas `ter_jf_content` (ja tādi tur vispār būs protams). šeit es mēģīnāju pirms gada paskaidrot http://php.lv/f/topic/5848-valodas/page__p__92042entry92042 Priekšrocības: salikt cik vien vēlamies tulkojamo valodu - tikai pievienojot tabulā `ter_languages` var iztulkot visu dadubāzi nav vajadzības pārrakstīt pieprasījumus Mīnusi: saturam jābūt identiskam visās valodās - ja ir sadaļa EN versijā, tad jābūt arī LV versijā. Protams var ar perversijām, bet vēlams izmantot tikai tulkošanai Pie pieprasījuma tulkošanas tiek izsaukts papildus pieprasījums pēc tulkojumiem. Ar to var cīnīties kešojot pieprasījumus tulkošana strādā tikai uz SELECT, bet ar to es domāju pietiek es jau tagad visu glabāju datubāzē, un varu jebkurai savai lapai pievienot cik vien vēlos valodas un tulkota satura (bez jebkādiem sarežģījumiem). Ir arī uzrakstīts Adminpanelis, kur ar vienu konfigurācijas failu norādu, no kuras tabulas kādi lauki ir jāiztulko. Tad ērtā interfeisā to var darīt. Tieši tā pat, kā tas notiek http://www.joomfish.net/
  15. tad iemācies plānot savu budžetu. Vispirms jānosaka cena darbam, un tikai tad jāmeklē darītājs. Tieši šī iemesla dēļ es neiešu uz pārrunām (kādā uzņēmumā), kas nevēlas norādīt darba samaksu. Normālā variantā, uzņēmums skatās ka viņiem pietrūkst darbinieks. Tad izvērtē budžetu, vai ir vērts ņemt vēl vienu darbinieku. Nosaka budžetu un tikai tad meklē. Ja ir noteikts budžets, tad nav dižas jēgas slēpt šo ciparu. Ja nav norādīts atalgojums (cena). Tad manas asociācijas, ka uzņēmums vienkārši vēlas apskatīties tirgu. Ja atnāks kāds lētais, tad skatīsimies vai varam tādu atļauties (vai arī būs izdevīgi). Ja nebūs lētā džeka, tad pagaidīsim līdz nākošai reizei. No tāda tipa cilvēkiem mēģinu izvairīties (ja tas, kaut kādā veidā saistīts ar manu darbu).
  16. Man nepatīk, ka tiek piecūkots htmls ar liekiem tagiem (protams, var arī uztaisīt ar javascriptu). Tāpēc es izmantoju http://www.css3.info/preview/rounded-border/ , pārējie pārlūki lai priecājas ar kantainiem stūrīšiem. Nav tā tik advancēta fīča, ka nevar implementēt (izņemot gecko un webkit).
  17. nesen iznāca http://www.netbeans.org/community/releases/67/ , bet nezinu kā ir ar ftp uz remote serveri. Piekrītu pārējiem, ka developēt uz remote ftp nav īpaši gudri. Pieinstalē ubuntu, tur varēsi ar ftp failiem darboties, kā ar lokāliem. Bet es domāju, ka saregulēt ubuntu būs mazliet sarežģītāk par eclipsi :) Tu gribi teikt, ka pilnīgi visu taisi zem versiju kontroles? Man ir 3 posmi: 1) ja darbs aizņem ~ 1 stundu, tad vispār neko neizmantoju, sataisu pa taisno (ar kādu notepad++) un izmantoju. Tas var būt kāds sīks plugins, html griezums vai vēl kas līdzīgs; 2) ja darbs ir mazliet lielāks. Tad paņemu netbeanu, un ar iebūvēto local history man pilnībā pietiek; 3) ja darbs ir pietiekoši liels, tikai tad ņemu svn. Jo developēju pie vairākiem kompjiem, ar atškirīgiem OS, dažreiz vēl ar citiem cilvēkiem utt.
  18. es ieteiktu kaut kā savādāk taisīt biznesa modeli šim pasākumam. Piemēram taisīt templatus maksas, un ja tam cena ir 50ls, tad piemēram 25 aiziet dizainerim un 25 griezējam. Dizaineri un griezēji varētu būt jebkurš cilvēks, kurš tādā veidā vēlas piepelnīt. Tad ja kāds dizaineris saražo smuku dizainu, viņš var pārdod to savam īstam klientam un vēl ielādēt pie tevis mājas lapā, lai tādā veidā gūt papildus ienākumus. Tad atrodas kāds griezējs un piesakās sagraizīt šo dizainu (piemēram viens griezējs uztaisa joomlas template, kāds cits drupalam utt). Tādā veidā varētu satusēt griezējus un dizainerus. Es jau atbalstu, bet izskatās, ka diez gan daudz darba jāiegulda un maza atdeve šeit Latvijā. Var jau pa visu pasauli, bet tur liela konkurence.
  19. sīkām lietām izmantoju gedit (linuxa), notepad2 (windows) - noklusētais editors, ja vajag kādu konfigurācijas failu rediģēt utt. Mazliet lielākām darbībām notepad++, piemēram kāda swf uzkodēšanai, vai arī sīkai lapai. Kad taisu ko lielāku, tad netbeans, tāpēc ka: identiska versija ir uz linuxa un windowsa; ir subversion, kur es varu ērti commitot jaunus failus; ir arī local history, kas dažreiz noder apskatīt vecākas versijas; visādi highlight, kas uzreiz man parāda variantus arī no citiem failiem un klasēm; nav īpaši bremzīgs; nekarās bieži :); ērti shortcuti; nevajag daudz konfigurēt, jau uzreiz ir viss forši salikts; vēl daudz viss kas, bet tā neatceros. Esmu arī mēģinājis eclispu, aptana (kas ir tas pats), tad vēl visādus maksas editorus, bet diemžēl neizdevās atrast sev piemērotāku, un netbeans uz šo dienu mani apmierina.
  20. ar JS var visu šo nodetektēt, vai ir uzlikt flash plejeris, kāda versija utt. Var uztaisīt kādu test .swf, kas aizsūta callbacku JS, ka ir ielādēts un uztaisīt to neredzamu ar position absolute. Nu un tālāk var rādīt tam lietotājam ko vēlies, kaut vai teksta veida reklāmas. Vienīgi nebūsi pasargāts pret lietotājiem, kas ir atrubījuši JS, bet tādu ir baigi maz skaits. Es par tādiem daudz nedomāju, jo bez JS browseris nav pilnvērtīgi lietojams :)
  21. Kā nevar? Uztaisam socket konekciju pie servera un visu laikam turam = flash vai java :)
  22. gribu redzēt šo super lapu, ko no jums nozaga. Protams daudz visādu paranoiku, bet ja vēlies lai no tevis to nezagtu, tad nevienam citam to nerādi. Es pa savu mūžu esmu uzņēmies tikai kādas 2-3 haltūras, un pēc katras solījos vairāk nevienam neko netaisīt. Jo neIT cilvēkiem ir tāda miglaina saprašana par šo lietu. Klients nesaprot, ka e-pastu lasīšana, konsultēšana pa telefonu vai klātienē, atbildēšana uz kaukt kādiem sviestaniem pieprasījumiem (klients prasa: ieliec manu lapu pirmajā vietā google rezultātos :)) arī pieskaita pie darba. Un parasta lapa aizņem 3-4 dienas (kopumā), kur uz izstrādi ir iztērēta maksimums diena. Es pat biju gatavs atdod atpakaļ naudu un piemaksāt starpību pie citiem darba darītājiem, lai tikai tas cilveks aizmirst manu telefonu un e-pastu.
  23. ja patīk taupīt, tad mootools vari pats salasīt vajadzīgas fīčas http://mootools.net/core , ja paņemam http://mootools.net/docs/core/Request/Request.JSON ar YUI kompresiju, tad sanāk 25kb. Ja vēl saspiest ar gzipu, tad vispār mazs izmērs paliks. Un es izvēlos frameworku lietot pat mazās lapās. Jo tas paātrina izstrādi, zaudējot tikai dažus kilobaitus (frameworka svars) no lapas svara.
  24. nemec

    html fons

    tad jau labāk paņemt bildi 2000x1px, 1000px nokrāsot vienā krāsā un otru pusi 1000px nokrāsot citā krāsā. Tad uzlikt uz body (kas ietver visu lapu) cssā background: url('2000x1.png') repeat-y center center;
  25. Kā daru es. ielādēju HTML templatus javascriptā: function JStemplate(template){ switch(template){ case 'self': return '<div class="self"></div>'; break; } } =tas ir viens templates 'self'. Šie templati automātiski lādējās no tamplate mapes (ar php palīdzību) kur stāv šobrīd viens self.html (ar saturu '<div class="self"></div>') nākošais solis pēc ajax pieprasījuma atgriežu instrukcijas, if(isset($_GET['j'])){ $resultJson = array( 'template'=>'self' , 'context'=>array( 'self' => $itemDescription //instrukcijas = klasē self ielikt mainīgo itemDescription ) , 'head' => $menu->last_title() // dinamiski mainu document.head ); } kad atnāk atbilde uz ajaxu, tad tur man stāv funkcija onNewContent: function®{ document.title = r.head; template.setTemplate(r.template); template.el.autoRender(r.context); } par autoRender, tiek izmantota http://beebole.com/pure/ template JS klase Man sanāk, ka JS vispār nevajag līst lai uzrakstīt jaunu templatu vai padod jaunas instrukcijas ar template manipulāciju. Ja es saņemšos un uzrakstīšu pure iekš php, tad to varēs izmantot arī kā PHP šāblonizatoru. Un man sanāks kopīgie šabloni iekš PHP un JS (ajax)
×
×
  • Create New...