Nástroje používateľa

Nástoje správy stránok


dev:omega:js:js-php:start

Rozdiely

Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.

Odkaz na tento prehľad zmien

Next revision
Previous revision
dev:omega:js:js-php:start [2015/10/20 09:11]
Boris Duchaj vytvorené
dev:omega:js:js-php:start [2017/01/10 09:06] (aktuálne)
Boris Duchaj
Riadok 1: Riadok 1:
-Komunikácia ​medzi JavaScriptom ​PHP API Omege je zabezpečená triedou ​**commclass.js** v adresari //js// a **commJs.class.php** v adresari //include//+====== Javascript/​PHP ​Komunikácia ​====== 
 + 
 +===== Tvorba html stránky ===== 
 +Pre správne fungovanie html verzie je nutná správna tvorba .tpl súboru danej stránky. Pretože OMEGA, má svoj vlastný systém generovania ​publikovania html stránok je nutné ako prvé správne vytvorenie tpl, z ktorého sa daná html stránka následne ponúkne prehliadaču. 
 + 
 +Ako prvé je nutné mať doplnený **smarty plugin** (adresár //​smarty_plugins//​) **function.mergeFiles.php** o **funkciu importParseYaml** nachádza sa napr. vo vetve **duch/​merge7**. \\ 
 +Táto funkcia má nastarosti korektné načítanie dát z Yaml súboru a ich vloženie ​správnom tvare do daného tpl súboru. ​  
 + 
 +Do tpl súboru sa je nutné načítanie js a css určitým spôsobom a to následovne  
 + 
 +<code tpl> 
 +{mergeFiles 
 + type="​css"​ 
 + assign="​tmpCssFileName"​ 
 + outputDir="​`$app->​public_dir`web"​ 
 + expireDays=10 
 + files=""​ 
 + yaml_file="​testss/​testss.yaml"​ 
 +
 + 
 +{mergeFiles 
 + type="​js"​ 
 + assign="​tmpJsFileName"​ 
 + outputDir="​`$app->​public_dir`web"​ 
 + expireDays=10 
 + files=""​ 
 + yaml_file="​testss/​testss.yaml"​ 
 +
 +</​code>​ 
 + 
 +Predtým je nutné vytvoriť v adresári modulu, adresár //​form_data//​ a sem nahrať ​**yaml súbor**, ktorý je  uvedený v yaml_file položke.\\ 
 +Yaml súbor obsahuje následovný tvar 
 + 
 +<code yaml> 
 +css: 
 +- main.css 
 +- jquery-ui.min.css 
 +- jquery-ui.structure.css 
 +- jquery-ui.theme.css 
 +- html/​tabs/​css/​class_tab.css 
 +- html/​window/​css/​class_window.css 
 +- html/​calendar/​css/​calendar.css 
 +- html/​calendar/​css/​datapicker.css 
 +- html/​context_menu/​css/​class_contextMenu.css 
 +- html/​tree/​css/​class_tree.css 
 +- html/​gantt_planner/​css/​class_gantt_planner.css 
 +- jsSmartSearch/​ssearch.css 
 + 
 +js: 
 +- terminal.x/​jquery-1.10.2.js 
 +- terminal.x/​jquery-ui.js 
 +- function.js 
 +- sha3.js 
 +- md5.js 
 +- comm_class.js 
 +- html/​includer/​js/​class_includer.js 
 +- html/​calendar/​js/​calendar_class.js 
 +- html/​calendar/​js/​calendar_function.js 
 +- html/​window/​js/​class_window.js 
 +- html/​tabs/​js/​class_tab.js 
 +- html/​tree/​js/​class_tree.js 
 +- html/​context_menu/​js/​class_contextMenu.js 
 +- html/​gantt_planner/​js/​class_gantt_planner.js 
 +- js_smartSearch.js 
 + 
 +module_js:​ 
 +- testss.js 
 + 
 +module_css:​ 
 +- testss.css 
 +</​code>​ 
 + 
 +<color red> **Dôležité** </​color>​ je dodržanie poradia jednotlivých súborov tak aj uvedenie //css// a //​module_css//​. ​ Ako prvé sa zadáva skupina //css// a //js// toto sú css a js súbory uložené v hlavnej adresárovej štruktúre omegy a budú nahraté ako prvé, **pozor** dodržanie poradia jednotlivých súborov. 
 +Následne sa zadávajú //​module_css//​ a //​module_js//,​ toto sú už súbory v adresári modulu.  
 + 
 +**Cesta** pre js a css je relatívna voči \css\ a \js\, pre modul sa zadávajú už len názvy súbor, samozrejme plati ak je podadresár v css tak je ho nutné uviesť do danej cesty.  
 + 
 +===== Komunikácia medzi JavaScriptom a PHP ===== 
 + 
 +Nutné súbory \\ 
 + 
 +**comm_class.js** v adresari //./js// \\ 
 + 
 +**commJs.class.php** v adresari //./​include// ​\\ 
 + 
 +Pre správne fungovanie je nutné mať taktiež kompletné verzie jquery a jquery-ui.  
 + 
 +Následne v javascripte pre danú stránku je nutné sa komunikácia inicializuje následovne  
 +<code javascript>​ 
 +var t = new js_comunication();​ 
 +var settings = { 
 +  test1:"​test1",​ 
 +  test2:"​test2"​ 
 +  }; 
 +t.addRawRequest( //tento request volá súbor v hlavnej štruktúre omegy t.j. /​include/​niečo 
 +  "url cesta k route napr. http://​studio2.local/​r/​cool_uri",​ 
 +  "​nasledne názov súboru case sensitive / metóda napr. testClass/​testCall",​ 
 +  this, //tu si treba uvedomiť, kde sme t.j. či sa nenachádzame v zakladom javascripte alebo vo funkci alebo v jquery, pretože toto je návratový zdroj kam sa požiadavka vráti 
 + ​[settings,"​názov callBack funkcie kam sa má vrátiť výsledok z PHP", arguments]);​ 
 +  t.sendData();​ 
 +</​code>​ 
 + 
 +v prípade, že sa jedná o požiadavku na modul je nutné podobné zadanie ale 
 +<code javascript>​ 
 +var t = new js_comunication();​ 
 +var settings = { 
 +  test1:"​test1",​ 
 +  test2:"​test2"​ 
 +  }; 
 +t.addRawRequest( //tento request volá modul súbor v hlavnej štruktúre omegy t.j. /​modules/​nazovModulu/​include/​testClass.class.php 
 +  "url cesta k route napr. http://​studio2.local/​r/​cool_uri",​ 
 +  "​module:​nasledne názov súboru case sensitive / metóda napr. modul:​testClass/​testCall",​ 
 +  this, //tu si treba uvedomiť, kde sme t.j. či sa nenachádzame v zakladom javascripte alebo vo funkci alebo v jquery, pretože toto je návratový zdroj kam sa požiadavka vráti 
 + ​[settings,"​názov callBack funkcie kam sa má vrátiť výsledok z PHP", arguments]);​ 
 +  t.sendData();​ 
 +</​code>​ 
 + 
 +Výsledkom je, že do zadanej callBack funkcie sa vráti status a result  
 +<code javascript>​ 
 +function callBack(status,​result) 
 +
 +  console.log([status,​result]);​ 
 +}; 
 +</​code>​ 
 + 
 +**status** je true/false, **result** je Object,​ObjectArray,​ ev dľa výsledku 
 + 
 +Komunikácia je nastavená tak, že čaká (x milisekúnd) čas zadaný v js_comunication.js v premenej  
 +<​code>​ 
 +var __timeOut__ = 30; 
 +</​code>​ 
 +Kým odošle požiadavku,​ to znamená ak v tomto čase príjde niekoľko požiadaviek,​ všetky sa zabalia do jednej jedinej požiadavky,​ ktorá sa následne spracuje v PHP časti a odošle sa späť v tom poradí ako bola odoslaná. 
dev/omega/js/js-php/start.1445325067.txt.gz · Posledná úprava: 2015/10/20 09:11 od Boris Duchaj