PageRenderTime 28ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 1ms

/lib/webElements.inc

https://bitbucket.org/joaoborsoi/avalanche
PHP | 602 lines | 543 code | 15 blank | 44 comment | 31 complexity | d8a26d1c32a7a039fed1c37419a53e81 MD5 | raw file
  1. <?php
  2. /******************************************************************************/
  3. /********************************** WebElements *******************************/
  4. /******************** por JoĂŁo Makray <www.joaomak.net> ******************/
  5. /********************************** VersĂŁo 2.5 ********************************/
  6. // ATTRIBUTES
  7. function parseAttributes($params){
  8. if(is_array($params))return $params;
  9. $params=str_replace('&amp;','<Eamp;>',$params);
  10. $params=str_replace('\=','<Eq;>',$params);
  11. $out=array();
  12. $sep=explode('&',$params);
  13. foreach($sep as $attr){
  14. $attr=str_replace('<Eamp;>','&amp;',$attr);
  15. $kv=explode('=',$attr);
  16. if(count($kv)==1 && count($sep)==1 && $kv[0]!='')
  17. $out['id']=$kv[0];
  18. if(count($kv)==2)
  19. $out[$kv[0]]= str_replace('<Eq;>','=',$kv[1]);
  20. }
  21. return $out;
  22. }
  23. ///////////////////////////////// BASIC ////////////////////////////////////////
  24. class div{
  25. var $str;
  26. function div($params=''){$params = parseAttributes($params);
  27. $this->str = "\n".'<div ';
  28. foreach($params as $key=>$value)
  29. $this->str .= $key.'="'.$value.'" ';
  30. $this->str .= '>';
  31. }
  32. function add($txt){
  33. $this->str .= $txt;
  34. }
  35. function get_html(){
  36. return $this->str . "\n".'</div>';
  37. }
  38. }
  39. function div($txt, $params=''){$params = parseAttributes($params);
  40. $str="\n<div ";
  41. foreach($params as $key=>$value)
  42. $str .= $key.'="'.$value.'" ';
  43. $str .= '>'.$txt."\n".'</div>';
  44. return $str;
  45. }
  46. class span{
  47. var $str;
  48. function span($params=''){$params = parseAttributes($params);
  49. $this->str = '<span ';
  50. foreach($params as $key=>$value)
  51. $this->str .= $key.'="'.$value.'" ';
  52. $this->str .= '>';
  53. }
  54. function add($txt){
  55. $this->str .= $txt;
  56. }
  57. function get_html(){
  58. return $this->str . '</span>';
  59. }
  60. }
  61. function span($txt, $params=''){$params = parseAttributes($params);
  62. $str="<span ";
  63. foreach($params as $key=>$value)
  64. $str .= $key.'="'.$value.'" ';
  65. $str .= '>'.$txt.'</span>';
  66. return $str;
  67. }
  68. function small($txt, $params=''){$params = parseAttributes($params);
  69. $str="<small ";
  70. foreach($params as $key=>$value)
  71. $str .= $key.'="'.$value.'" ';
  72. $str .= '>'.$txt.'</small>';
  73. return $str;
  74. }
  75. function big($txt, $params=''){$params = parseAttributes($params);
  76. $str="<big ";
  77. foreach($params as $key=>$value)
  78. $str .= $key.'="'.$value.'" ';
  79. $str .= '>'.$txt.'</big>';
  80. return $str;
  81. }
  82. function a($txt, $params=''){$params = parseAttributes($params);
  83. $str="<a ";
  84. if(array_key_exists('href',$params)){
  85. $tmp=str_replace('&amp;','&',$params['href']);
  86. $params['href']=str_replace('&','&amp;',$tmp);
  87. }
  88. foreach($params as $key=>$value)
  89. $str .= $key.'="'.$value.'" ';
  90. $str .= '>'.$txt.'</a>';
  91. return $str;
  92. }
  93. function img($params=''){$params = parseAttributes($params);
  94. $str="<img ";
  95. if(!array_key_exists('alt',$params)) $params['alt']='';
  96. if($params['alt']!='' && !array_key_exists('title',$params)) $params['title']=''; //correct ie
  97. foreach($params as $key=>$value)
  98. $str .= $key.'="'.$value.'" ';
  99. return $str.'/>';
  100. }
  101. function p($txt, $params=''){$params = parseAttributes($params);
  102. $str="\n<p ";
  103. foreach($params as $key=>$value)
  104. $str .= $key.'="'.$value.'" ';
  105. $str .= '>'.$txt.'</p>';
  106. return $str;
  107. }
  108. function br($params=''){$params = parseAttributes($params);
  109. $str="<br ";
  110. foreach($params as $key=>$value)
  111. $str .= $key.'="'.$value.'" ';
  112. return $str.'/>'."\n";
  113. }
  114. function hr($params=''){$params = parseAttributes($params);
  115. $str="\n<hr ";
  116. foreach($params as $key=>$value)
  117. $str .= $key.'="'.$value.'" ';
  118. return $str.'/>'."\n";
  119. }
  120. function script($script, $params=''){ $params = parseAttributes($params);
  121. //<![CDATA[
  122. if(!array_key_exists('type',$params)) $params['type']='text/javascript';
  123. $str= '<script ';
  124. foreach($params as $key=>$value)
  125. $str .= $key.'="'.$value.'" ';
  126. return $str.'>'.$script.'</script>'."\n"; //]]
  127. }
  128. function del($txt, $params=''){$params = parseAttributes($params);
  129. $str="<del ";
  130. foreach($params as $key=>$value)
  131. $str .= $key.'="'.$value.'" ';
  132. $str .= '>'.$txt.'</del>';
  133. return $str;
  134. }
  135. function blockquote($txt, $params=''){$params = parseAttributes($params);
  136. $str="\n<blockquote ";
  137. foreach($params as $key=>$value)
  138. $str .= $key.'="'.$value.'" ';
  139. $str .= '>'.$txt."\n</blockquote>";
  140. return $str;
  141. }
  142. function cite($txt, $params=''){$params = parseAttributes($params);
  143. $str="<cite ";
  144. foreach($params as $key=>$value)
  145. $str .= $key.'="'.$value.'" ';
  146. $str .= '>'.$txt.'</cite>';
  147. return $str;
  148. }
  149. function b($txt){
  150. return '<b>'.$txt.'</b>';
  151. }
  152. function i($txt){
  153. return '<i>'.$txt.'</i>';
  154. }
  155. function strong($txt, $params=''){$params = parseAttributes($params);
  156. $str="<strong ";
  157. foreach($params as $key=>$value)
  158. $str .= $key.'="'.$value.'" ';
  159. $str .= '>'.$txt.'</strong>';
  160. return $str;
  161. }
  162. function em($txt, $params=''){$params = parseAttributes($params);
  163. $str="<em ";
  164. foreach($params as $key=>$value)
  165. $str .= $key.'="'.$value.'" ';
  166. $str .= '>'.$txt.'</em>';
  167. return $str;
  168. }
  169. function iframe($params=''){$params = parseAttributes($params);
  170. $str="\n<iframe ";
  171. foreach($params as $key=>$value)
  172. $str .= $key.'="'.$value.'" ';
  173. return $str.'></iframe>';
  174. }
  175. function address($txt, $params=''){$params = parseAttributes($params);
  176. $str="\n<address ";
  177. foreach($params as $key=>$value)
  178. $str .= $key.'="'.$value.'" ';
  179. $str .= '>'.$txt."\n".'</address>';
  180. return $str;
  181. }
  182. function comment($txt){
  183. return "\n<!-- ".$txt." -->\n";
  184. }
  185. ///////////////////////////////// HEADINGS /////////////////////////////////////
  186. function h1($txt, $params=''){$params = parseAttributes($params);
  187. $str="\n<h1";
  188. foreach($params as $key=>$value)
  189. $str .= ' '.$key.'="'.$value.'"';
  190. $str .= '>'.$txt.'</h1>';
  191. return $str;
  192. }
  193. function h2($txt, $params=''){$params = parseAttributes($params);
  194. $str="\n<h2";
  195. foreach($params as $key=>$value)
  196. $str .= ' '.$key.'="'.$value.'" ';
  197. $str .= '>'.$txt.'</h2>';
  198. return $str;
  199. }
  200. function h3($txt, $params=''){$params = parseAttributes($params);
  201. $str="\n<h3";
  202. foreach($params as $key=>$value)
  203. $str .= ' '.$key.'="'.$value.'" ';
  204. $str .= '>'.$txt.'</h3>';
  205. return $str;
  206. }
  207. function h4($txt, $params=''){$params = parseAttributes($params);
  208. $str="\n<h4";
  209. foreach($params as $key=>$value)
  210. $str .= ' '.$key.'="'.$value.'" ';
  211. $str .= '>'.$txt.'</h4>';
  212. return $str;
  213. }
  214. function h5($txt, $params=''){$params = parseAttributes($params);
  215. $str="\n<h5";
  216. foreach($params as $key=>$value)
  217. $str .= ' '.$key.'="'.$value.'" ';
  218. $str .= '>'.$txt.'</h5>';
  219. return $str;
  220. }
  221. function h6($txt, $params=''){$params = parseAttributes($params);
  222. $str="\n<h6";
  223. foreach($params as $key=>$value)
  224. $str .= ' '.$key.'="'.$value.'" ';
  225. $str .= '>'.$txt.'</h6>';
  226. return $str;
  227. }
  228. ///////////////////////////////// FORMS ////////////////////////////////////////
  229. function form($txt, $params=''){$params = parseAttributes($params);
  230. $str="\n<form ";
  231. if(!array_key_exists('method',$params)) $params['method']='post';
  232. if(array_key_exists('action',$params)) $params['action']=str_replace('&','&amp;',$params['action']);
  233. foreach($params as $key=>$value)
  234. $str .= $key.'="'.$value.'" ';
  235. $str .= '>'.$txt."\n".'</form>';
  236. return $str;
  237. }
  238. class form{
  239. var $str;
  240. function form($params=''){$params = parseAttributes($params);
  241. $this->str = "\n".'<form ';
  242. if(!array_key_exists('method',$params)) $params['method']='post';
  243. if(array_key_exists('action',$params)) $params['action']=str_replace('&','&amp;',$params['action']);
  244. foreach($params as $key=>$value)
  245. $this->str .= $key.'="'.$value.'" ';
  246. $this->str .= '>';
  247. }
  248. function add($txt){
  249. $this->str .= $txt;
  250. }
  251. function get_html(){
  252. return $this->str . "\n".'</form>';
  253. }
  254. }
  255. class fieldset{
  256. var $str;
  257. function fieldset($params=''){$params = parseAttributes($params);
  258. $this->str = "\n".'<fieldset ';
  259. foreach($params as $key=>$value)
  260. $this->str .= $key.'="'.$value.'" ';
  261. $this->str .= '>';
  262. }
  263. function add_legend($txt, $params=''){$params = parseAttributes($params);
  264. $this->str .= "\n".'<legend ';
  265. foreach($params as $key=>$value)
  266. $this->str .= $key.'="'.$value.'" ';
  267. $this->str .= '>'.$txt.'</legend>'."\n";
  268. }
  269. function add($txt){
  270. $this->str .= $txt;
  271. }
  272. function get_html(){
  273. return $this->str . "\n".'</fieldset>';
  274. }
  275. }//end fieldset class
  276. function fieldset($txt, $params=''){$params = parseAttributes($params);
  277. $str="<fieldset ";
  278. foreach($params as $key=>$value)
  279. $str .= $key.'="'.$value.'" ';
  280. $str .= '>'.$txt.'</fieldset>';
  281. return $str."\n";
  282. }
  283. function legend($txt, $params=''){$params = parseAttributes($params);
  284. $str="<legend ";
  285. foreach($params as $key=>$value)
  286. $str .= $key.'="'.$value.'" ';
  287. $str .= '>'.$txt.'</legend>';
  288. return $str."\n";
  289. }
  290. function button($txt, $params=''){$params = parseAttributes($params);
  291. $str="<button ";
  292. foreach($params as $key=>$value)
  293. $str .= $key.'="'.$value.'" ';
  294. $str .= '>'.$txt.'</button>';
  295. return $str;
  296. }
  297. function label($txt, $params=''){$params = parseAttributes($params);
  298. $str="<label ";
  299. foreach($params as $key=>$value)
  300. $str .= $key.'="'.$value.'" ';
  301. $str .= '>'.$txt.'</label>';
  302. return $str;
  303. }
  304. function input($params=''){$params = parseAttributes($params);
  305. $str="<input ";
  306. if(!array_key_exists('type',$params)) $params['type']='text';
  307. foreach($params as $key=>$value)
  308. $str .= $key.'="'.$value.'" ';
  309. return $str.'/>';
  310. }
  311. function textarea($txt, $params=''){$params = parseAttributes($params);
  312. $str="<textarea ";
  313. foreach($params as $key=>$value)
  314. $str .= $key.'="'.$value.'" ';
  315. $str .= '>'.$txt.'</textarea>';
  316. return $str."\n";
  317. }
  318. class select{
  319. var $str ;
  320. var $empty;
  321. /*
  322. Select
  323. */
  324. function select($params=''){$params = parseAttributes($params);
  325. $this->str = "\n<select ";
  326. foreach($params as $key=>$value)
  327. $this->str .= $key.'="'.$value.'" ';
  328. $this->str .= '>'."\n";
  329. $this->empty = true;
  330. }
  331. function add_option($txt, $params=''){$params = parseAttributes($params);
  332. $this->str.="<option ";
  333. foreach($params as $key=>$value)
  334. $this->str .= $key.'="'.$value.'" ';
  335. $this->str .= '>'.$txt.'</option>'."\n";
  336. $this->empty = false;
  337. }
  338. function get_html(){
  339. if(!$this->empty) return $this->str .= '</select>'."\n";
  340. else return '<!-- select empty -->'."\n";
  341. }
  342. }
  343. ///////////////////////////////// LISTS ////////////////////////////////////////
  344. class ul{
  345. var $str ;
  346. var $empty;
  347. /*
  348. Unordered List
  349. */
  350. function ul($params=''){$params = parseAttributes($params);
  351. $this->str = "\n<ul ";
  352. foreach($params as $key=>$value)
  353. $this->str .= $key.'="'.$value.'" ';
  354. $this->str .= '><!--'."\n";
  355. $this->empty = true;
  356. }
  357. function add_li($txt, $params=''){
  358. $this->str .= li($txt, $params);
  359. $this->empty = false;
  360. }
  361. function get_html(){
  362. if(!$this->empty) return $this->str .= '--></ul>'."\n\n";
  363. else return '<!-- ul empty -->'."\n";
  364. }
  365. }
  366. function get_ul($items, $params=''){
  367. $ul=new ul($params);
  368. foreach($items as $value){
  369. $ul->add_li($value);
  370. }
  371. return $ul->get_html();
  372. }
  373. // LI
  374. function li($txt, $params=''){$params = parseAttributes($params);
  375. $str = '--><li';
  376. foreach($params as $key=>$value)
  377. $str .= ' '.$key.'="'.$value.'" ';
  378. $str .= '>';
  379. $str .= $txt;
  380. return $str ."</li><!--\n";
  381. }
  382. class ol{
  383. var $str ;
  384. var $empty;
  385. /*
  386. Unordered List
  387. */
  388. function ol($params=''){$params = parseAttributes($params);
  389. $this->str = "\n<ol ";
  390. foreach($params as $key=>$value)
  391. $this->str .= $key.'="'.$value.'" ';
  392. $this->str .= '><!--'."\n";
  393. $this->empty = true;
  394. }
  395. function add_li($txt, $params=''){
  396. $this->str .= li($txt, $params);
  397. $this->empty = false;
  398. }
  399. function get_html(){
  400. if(!$this->empty) return $this->str .= '--></ol>'."\n\n";
  401. else return '<!-- ol empty -->'."\n";
  402. }
  403. }
  404. function get_ol($items, $params=''){
  405. $ol=new ol($id,$params);
  406. foreach($items as $value){
  407. $ol->add_li($value);
  408. }
  409. return $ol->get_html();
  410. }
  411. class dl{
  412. var $str ;
  413. var $empty;
  414. /*
  415. Definition List
  416. */
  417. function dl($params=''){$params = parseAttributes($params);
  418. $this->str = "\n<dl ";
  419. foreach($params as $key=>$value)
  420. $this->str .= $key.'="'.$value.'" ';
  421. $this->str .= '>'."\n";
  422. $this->empty = true;
  423. }
  424. function add_dt($txt, $params=''){$params = parseAttributes($params);
  425. // dt
  426. $this->str .= "<dt ";
  427. foreach($params as $key=>$value)
  428. $this->str .= $key.'="'.$value.'" ';
  429. $this->str .= '>'.$txt.'</dt>'."\n";
  430. $this->empty = false;
  431. }
  432. function add_dd($txt, $params=''){$params = parseAttributes($params);
  433. // dd
  434. $this->str .= "<dd ";
  435. foreach($params as $key=>$value)
  436. $this->str .= $key.'="'.$value.'" ';
  437. $this->str .= '>'.$txt.'</dd>'."\n";
  438. $this->empty = false;
  439. }
  440. function get_html(){
  441. if(!$this->empty) return $this->str .= '</dl>'."\n\n";
  442. else return $this->str .= '<!-- dl empty -->'."\n";
  443. }
  444. }
  445. function get_dl ($items, $params=''){
  446. /*
  447. Definition List
  448. - entra array tipo 'titulo' => 'descricao',
  449. */
  450. $dl=new dl($params='');
  451. foreach($items as $key => $value){
  452. $dl->add_dt($key);
  453. $dl->add_dd($value);
  454. }
  455. return $dl->get_html();
  456. }
  457. ///////////////////////////////// TABLE ////////////////////////////////////////
  458. class table{
  459. var $str ;
  460. var $is_first_tr = true;
  461. /*
  462. Table
  463. */
  464. function table($params=''){$params = parseAttributes($params);
  465. $this->str = "\n<table ";
  466. foreach($params as $key=>$value)
  467. $this->str .= $key.'="'.$value.'" ';
  468. $this->str .= '>'."\n";
  469. }
  470. function add_caption($txt, $params=''){$params = parseAttributes($params);
  471. // caption
  472. $this->str .= "<caption ";
  473. foreach($params as $key=>$value)
  474. $this->str .= $key.'="'.$value.'" ';
  475. $this->str .= '>'.$txt.'</caption>';
  476. }
  477. function new_tr($params=''){$params = parseAttributes($params);
  478. // tr
  479. if(!$this->is_first_tr)$this->str .= "</tr>\n";
  480. $this->str .= "<tr ";
  481. foreach($params as $key=>$value)
  482. $this->str .= $key.'="'.$value.'" ';
  483. $this->str .= '>'."\n";
  484. $this->is_first_tr = false;
  485. }
  486. function add_th($txt, $params=''){$params = parseAttributes($params);
  487. // td
  488. $this->str .= "<th ";
  489. foreach($params as $key=>$value)
  490. $this->str .= $key.'="'.$value.'" ';
  491. $this->str .= '>'.$txt.'</th>';
  492. }
  493. function add_td($txt, $params=''){$params = parseAttributes($params);
  494. // td
  495. $this->str .= "<td ";
  496. foreach($params as $key=>$value)
  497. $this->str .= $key.'="'.$value.'" ';
  498. $this->str .= '>'.$txt.'</td>';
  499. }
  500. function get_html(){
  501. if(!$this->is_first_tr)$this->str .= "</tr>\n";
  502. return $this->str .= "</table>\n\n";
  503. }
  504. }
  505. function get_table($items, $params=''){
  506. $table = new table($params);
  507. foreach($items as $row){
  508. $table->new_tr();
  509. foreach($row as $cell){
  510. $table->add_td($cell);
  511. }
  512. }
  513. return $table->get_html();
  514. }
  515. ///////////////////////////////// Compostos //////////////////////////////
  516. function flash($src, $params=''){$params = parseAttributes($params);
  517. $alt='<small><a href="http://adobe.com/go/getflash">get Flash</a></small>';
  518. $flash=array('src'=>$src,'id'=>'we_flash','alt'=>$alt,'width'=>'100%','height'=>'100%','version'=>6,'bgcolor'=>'#ffffff');
  519. foreach($flash as $attr=>$value){
  520. if(array_key_exists($attr,$params)) $flash[$attr]=$params[$attr];
  521. }
  522. //$w='100%', $h='100%', $bgcolor='#ffffff', $version = 6){
  523. $str = '<div id="'.$flash['id'].'" class="flash">'.$flash['alt'].'</div>';
  524. $str .= script('var we_flash=new SWFObject("'.$flash['src'].'", "'.$flash['id'].'", "'.$flash['width'].
  525. '", "'.$flash['height'].'", '.$flash['version'].', "'.$flash['bgcolor'].'");we_flash.addParam("wmode","transparent");we_flash.write("'.$flash['id'].'");');
  526. return $str;
  527. }
  528. function swf($txt='', $params=''){$params = parseAttributes($params);
  529. $str="<object ";
  530. if(!array_key_exists('type',$params)) $params['type']='application/x-shockwave-flash';
  531. if(!array_key_exists('data',$params)) $params['data']='';
  532. // data, width, height
  533. foreach($params as $key=>$value)
  534. $str .= $key.'="'.$value.'" ';
  535. $str .= '><param name="movie" value="'.$params['data'].'" />';
  536. $str .= $txt.'</object>';
  537. return $str;
  538. }
  539. ///////////////////////////////// RSS ///////////////////////////////////
  540. class item{
  541. var $str ;
  542. var $empty;
  543. /*
  544. RSS Item
  545. */
  546. function item($params=''){$params = parseAttributes($params);
  547. $this->str = "\n<item ";
  548. foreach($params as $key=>$value)
  549. $this->str .= $key.'="'.$value.'" ';
  550. $this->str .= '>'."\n";
  551. $this->empty = true;
  552. }
  553. function add_title($txt, $params=''){$params = parseAttributes($params);
  554. $this->str .= "<title ";
  555. foreach($params as $key=>$value)
  556. $this->str .= $key.'="'.$value.'" ';
  557. $this->str .= '>'.$txt.'</title>'."\n";
  558. $this->empty = false;
  559. }
  560. function add_link($txt, $params=''){$params = parseAttributes($params);
  561. $this->str .= "<link ";
  562. foreach($params as $key=>$value)
  563. $this->str .= $key.'="'.$value.'" ';
  564. $this->str .= '>'.$txt.'</link>'."\n";
  565. $this->empty = false;
  566. }
  567. function add_description($txt, $params=''){$params = parseAttributes($params);
  568. $this->str .= "<description ";
  569. foreach($params as $key=>$value)
  570. $this->str .= $key.'="'.$value.'" ';
  571. $this->str .= '><![CDATA['.$txt.']]></description>'."\n";
  572. $this->empty = false;
  573. }
  574. function add_pubDate($txt, $params=''){$params = parseAttributes($params);
  575. $this->str .= "<pubDate ";
  576. foreach($params as $key=>$value)
  577. $this->str .= $key.'="'.$value.'" ';
  578. if(is_numeric($txt))$txt=gmdate("D, d M Y H:i:s T", $txt);
  579. $this->str .= '>'.$txt.'</pubDate>'."\n";
  580. $this->empty = false;
  581. }
  582. function get_html(){
  583. if(!$this->empty) return $this->str .= '</item>'."\n\n";
  584. else return $this->str .= '<!-- item empty -->'."\n";
  585. }
  586. }
  587. ?>