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

Both sides previous revision Previous revision
Next revision
Previous revision
dev:omega:js:js-php:start [2015/10/20 15:39]
Boris Duchaj
dev:omega:js:js-php:start [2017/01/10 09:06] (aktuálne)
Boris Duchaj
Riadok 1: Riadok 1:
 ====== Javascript/​PHP Komunikácia ====== ====== Javascript/​PHP Komunikácia ======
  
-Komunikácia medzi JavaScriptom ​PHP API v Omege je zabezpečená triedou ​+===== 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.
  
-**comm_class.js** v adresari //​./​js// ​+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 v 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//​+**commJs.class.php** v adresari //​./​include// ​\\
  
 +Pre správne fungovanie je nutné mať taktiež kompletné verzie jquery a jquery-ui. ​
  
-===== Nadviazanie Async spojenia s PHP =====+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.1445348366.txt.gz · Posledná úprava: 2015/10/20 15:39 od Boris Duchaj