Nástroje používateľa

Nástoje správy stránok


dev:omega:js:js-php:start

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 a 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 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

{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"
}

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

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

Dôležité 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
a 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

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();

v prípade, že sa jedná o požiadavku na modul je nutné podobné zadanie ale

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();

Výsledkom je, že do zadanej callBack funkcie sa vráti status a result

function callBack(status,result)
{
  console.log([status,result]);
};

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

var __timeOut__ = 30;

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.txt · Posledná úprava: 2017/01/10 09:06 od Boris Duchaj