PageRenderTime 51ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/appLms/modules/link/link.php

https://github.com/wanadli75/cocalms
PHP | 495 lines | 397 code | 68 blank | 30 comment | 21 complexity | 647e30cc9fe65783460f5a4c051f3ad3 MD5 | raw file
Possible License(s): GPL-2.0, CC-BY-3.0
  1. <?php defined("IN_FORMA") or die('Direct access is forbidden.');
  2. /* ======================================================================== \
  3. | FORMA - The E-Learning Suite |
  4. | |
  5. | Copyright (c) 2013 (Forma) |
  6. | http://www.formalms.org |
  7. | License http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt |
  8. | |
  9. | from docebo 4.0.5 CE 2008-2012 (c) docebo |
  10. | License http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt |
  11. \ ======================================================================== */
  12. if(!Docebo::user()->isAnonymous()) {
  13. // XXX: modlinkgui
  14. function modlinkgui( $object_link ) {
  15. checkPerm('view', false, 'storage');
  16. $lang =& DoceboLanguage::createInstance('link');
  17. require_once(_base_.'/lib/lib.table.php');
  18. $del_perm = checkPerm('view', false, 'storage');
  19. $back_coded = htmlentities(urlencode($object_link->back_url));
  20. $textQuery = "
  21. SELECT idLink, title, link_address, sequence
  22. FROM ".$GLOBALS['prefix_lms']."_link
  23. WHERE idCategory = '".$object_link->getId()."'
  24. ORDER BY sequence";
  25. $result = sql_query($textQuery);
  26. $num_link = mysql_num_rows($result);
  27. list($title_cat) = sql_fetch_row(sql_query("
  28. SELECT title
  29. FROM ".$GLOBALS['prefix_lms']."_link_cat
  30. WHERE idCategory = '".$object_link->getId()."'"));
  31. $GLOBALS['page']->add(getTitleArea($lang->def('_SECT_LINK'), 'link')
  32. .'<div class="std_block">'
  33. .getBackUi( Util::str_replace_once('&', '&amp;', $object_link->back_url).'&amp;mod_result=0', $lang->def('_BACK') )
  34. .'<b>'.$lang->def('_TITLE').' : '.$title_cat.'</b><br /><br />'
  35. .'<div class="mod_container">'
  36. .'<a href="index.php?modname=link&amp;op=modlinkcat&amp;idCategory='.$object_link->getId()
  37. .'&amp;back_url='.$back_coded.'" title="'.$lang->def('_MOD_TITLE').'">'
  38. .'<img src="'.getPathImage().'standard/edit.png" alt="'.$lang->def('_MOD').'" /> '.$lang->def('_MOD_TITLE').'</a>'
  39. .'</div><br />', 'content');
  40. $tableCat = new Table(0, '', $lang->def('_SUMMARY_LINK'));
  41. $contentH = array($lang->def('_QUESTION'), $lang->def('_URL'),
  42. '<img src="'.getPathImage().'standard/down.png" alt="'.$lang->def('_DOWN').'" title="'.$lang->def('_MOVE_DOWN').'" />',
  43. '<img src="'.getPathImage().'standard/up.png" alt="'.$lang->def('_UP').'" title="'.$lang->def('_MOVE_UP').'" />',
  44. '<img src="'.getPathImage().'standard/edit.png" alt="'.$lang->def('_MOD').'" title="'.$lang->def('_MOD').'" />',
  45. '<img src="'.getPathImage().'standard/delete.png" alt="'.$lang->def('_DEL').'" title="'.$lang->def('_DEL').'" />');
  46. $typeH = array('', 'image', 'image', 'image', 'image', 'image');
  47. $tableCat->setColsStyle($typeH);
  48. $tableCat->addHead($contentH);
  49. $i = 1;
  50. while(list($idLink, $title, $link_address, $seq) = sql_fetch_row($result)) {
  51. $rowContent = array($seq.') '.$title, $link_address);
  52. if($i != $num_link) {
  53. $rowContent[] = '<a href="index.php?modname=link&amp;op=movedown&amp;idLink='
  54. .$idLink.'&amp;back_url='.$back_coded.'">'
  55. .'<img src="'.getPathImage().'standard/down.png" alt="'.$lang->def('_DOWN').'" title="'.$lang->def('_MOVE_DOWN').'" /></a>';
  56. }
  57. else $rowContent[] = '&nbsp;';
  58. if($i != 1){
  59. $rowContent[] = '<a href="index.php?modname=link&amp;op=moveup&amp;idLink='
  60. .$idLink.'&amp;back_url='.$back_coded.'">'
  61. .'<img src="'.getPathImage().'standard/up.png" alt="'.$lang->def('_UP').'" title="'.$lang->def('_MOVE_UP').'" /></a>';
  62. }
  63. else $rowContent[] = '&nbsp;';
  64. $rowContent[] = '<a href="index.php?modname=link&amp;op=modlink&amp;idLink='
  65. .$idLink.'&amp;back_url='.$back_coded.'">'
  66. .'<img src="'.getPathImage().'standard/edit.png" alt="'.$lang->def('_MOD').'" title="'.$lang->def('_MOD').'" /></a>';
  67. $rowContent[] = '<a href="index.php?modname=link&amp;op=dellink&amp;idLink='
  68. .$idLink.'&amp;back_url='.$back_coded.'">'
  69. .'<img src="'.getPathImage().'standard/delete.png" alt="'.$lang->def('_DEL').'" title="'.$lang->def('_DEL').'" /></a>';
  70. $tableCat->addBody($rowContent);
  71. ++$i;
  72. }
  73. $tableCat->addActionAdd('<a href="index.php?modname=link&amp;op=newlink&amp;idCategory='
  74. .$object_link->getId().'&amp;back_url='.$back_coded.'" title="'.$lang->def('_ADDLINKT').'">'
  75. .'<img src="'.getPathImage().'standard/add.png" alt="'.$lang->def('_ADD').'" /> '.$lang->def('_ADDLINK').'</a>');
  76. $GLOBALS['page']->add($tableCat->getTable()
  77. .'<span class="text_bold text_little">[ '
  78. .'<a href="index.php?modname=link&amp;op=fixsequence&amp;idCategory='.$object_link->getId()
  79. .'&amp;back_url='.$back_coded.'">'.$lang->def('_FIX_SEQUENCE').'</a>'
  80. .' ]</span>'
  81. .'</div>', 'content');
  82. }
  83. // XXX: addlinkcat
  84. function addlinkcat( $object_link ) {
  85. checkPerm('view', false, 'storage');
  86. $lang =& DoceboLanguage::createInstance('link');
  87. require_once(_base_.'/lib/lib.form.php');
  88. $GLOBALS['page']->add(getTitleArea($lang->def('_SECT_LINK'), 'link')
  89. .'<div class="std_block">'
  90. .Form::openForm('faqform', 'index.php?modname=link&amp;op=inslinkcat')
  91. .Form::openElementSpace()
  92. .Form::getHidden('back_url', 'back_url', htmlentities(urlencode($object_link->back_url)))
  93. .Form::getTextfield($lang->def('_TITLE'), 'title', 'title', 255, $lang->def('_TITLE'))
  94. .Form::getTextarea($lang->def('_DESCRIPTION'), 'description', 'description', $lang->def('_DESCRIPTION'))
  95. .Form::closeElementSpace()
  96. .Form::openButtonSpace()
  97. .Form::getButton('addlinkcat', 'addlinkcat', $lang->def('_INSERT'))
  98. .Form::closeButtonSpace()
  99. .Form::closeForm()
  100. .'</div>', 'content');
  101. }
  102. // XXX: inslinkcat
  103. function inslinkcat() {
  104. checkPerm('view', false, 'storage');
  105. $lang =& DoceboLanguage::createInstance('link');
  106. $back_url = urldecode($_POST['back_url']);
  107. $query_ins = "
  108. INSERT INTO ".$GLOBALS['prefix_lms']."_link_cat
  109. SET title = '".( (trim($_POST['title']) == '') ? $lang->def('_NOTITLE') : $_POST['title'])."',
  110. description = '".$_POST['description']."',
  111. author = '".(int)getLogUserId()."'";
  112. if(!sql_query($query_ins)) {
  113. $_SESSION['last_error'] = $lang->def('_OPERATION_FAILURE');
  114. Util::jump_to( ''.$back_url.'&create_result=0');
  115. }
  116. list($idLink) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()"));
  117. Util::jump_to( ''.$back_url.'&id_lo='.$idLink.'&create_result=1');
  118. }
  119. // XXX: modlinkcat
  120. function modlinkcat() {
  121. checkPerm('view', false, 'storage');
  122. $lang =& DoceboLanguage::createInstance('link');
  123. require_once(_base_.'/lib/lib.form.php');
  124. $idCategory = importVar('idCategory', true, 0);
  125. $back_url = urldecode(importVar('back_url'));
  126. $back_coded = htmlentities(urlencode($back_url));
  127. list($title, $descr) = sql_fetch_row(sql_query("
  128. SELECT title, description
  129. FROM ".$GLOBALS['prefix_lms']."_link_cat
  130. WHERE idCategory = '".$idCategory."'"));
  131. $GLOBALS['page']->add(getTitleArea($lang->def('_SECT_LINK'), 'link')
  132. .'<div class="std_block">'
  133. .getBackUi( 'index.php?modname=link&amp;op=modlinkgui&amp;idCategory='
  134. .$idCategory.'&amp;back_url='.$back_coded, $lang->def('_BACK'))
  135. .Form::openForm('faqform', 'index.php?modname=link&amp;op=uplinkcat')
  136. .Form::openElementSpace()
  137. .Form::getHidden('idCategory', 'idCategory', $idCategory)
  138. .Form::getHidden('back_url', 'back_url', $back_coded)
  139. .Form::getTextfield($lang->def('_TITLE'), 'title', 'title', 255, $title)
  140. .Form::getTextarea($lang->def('_DESCRIPTION'), 'description', 'description', $descr)
  141. .Form::closeElementSpace()
  142. .Form::openButtonSpace()
  143. .Form::getButton('addlinkcat', 'addlinkcat', $lang->def('_SAVE'))
  144. .Form::closeButtonSpace()
  145. .Form::closeForm()
  146. .'</div>', 'content');
  147. }
  148. // XXX: uplinkcat
  149. function uplinkcat() {
  150. checkPerm('view', false, 'storage');
  151. $lang =& DoceboLanguage::createInstance('link');
  152. $back_url = urldecode(importVar('back_url'));
  153. $back_coded = htmlentities(urlencode($back_url));
  154. $query_ins = "
  155. UPDATE ".$GLOBALS['prefix_lms']."_link_cat
  156. SET title = '".( (trim($_POST['title']) == '') ? $lang->def('_NOTITLE') : $_POST['title'])."',
  157. description = '".$_POST['description']."'
  158. WHERE idCategory = '".(int)$_POST['idCategory']."'";
  159. if(!sql_query($query_ins)) {
  160. $GLOBALS['page']->add(getErrorUi($lang->def('_OPERATION_FAILURE')
  161. .getBackUi('index.php?modname=link&op=modlinkgui&idCategory='
  162. .(int)$_POST['idCategory'].'&back_url='.$back_coded, $lang->def('_BACK'))), 'content');
  163. return;
  164. }
  165. require_once($GLOBALS['where_lms'].'/class.module/track.object.php');
  166. Track_Object::updateObjectTitle($_POST['idCategory'], 'link', $_POST['title']);
  167. Util::jump_to( 'index.php?modname=link&op=modlinkgui&idCategory='.(int)$_POST['idCategory'].'&back_url='.$back_coded);
  168. }
  169. // XXX: movelink
  170. function movelink($direction) {
  171. checkPerm('view', false, 'storage');
  172. $back_url = urldecode( $_GET['back_url'] );
  173. $back_coded = htmlentities(urlencode( $back_url ));
  174. list($idCategory, $seq) = sql_fetch_row(sql_query("
  175. SELECT idCategory, sequence
  176. FROM ".$GLOBALS['prefix_lms']."_link
  177. WHERE idLink = '".(int)$_GET['idLink']."'"));
  178. if($direction == 'up') {
  179. if($seq == 0) return;
  180. sql_query("
  181. UPDATE ".$GLOBALS['prefix_lms']."_link
  182. SET sequence = '$seq'
  183. WHERE idCategory = '".$idCategory."' AND sequence = '".($seq - 1)."'");
  184. sql_query("
  185. UPDATE ".$GLOBALS['prefix_lms']."_link
  186. SET sequence = sequence - 1
  187. WHERE idLink = '".(int)$_GET['idLink']."'");
  188. }
  189. if($direction == 'down') {
  190. sql_query("
  191. UPDATE ".$GLOBALS['prefix_lms']."_link
  192. SET sequence = '$seq'
  193. WHERE idCategory = '".$idCategory."' AND sequence = '".($seq + 1)."'");
  194. sql_query("
  195. UPDATE ".$GLOBALS['prefix_lms']."_link
  196. SET sequence = '".($seq + 1)."'
  197. WHERE idLink = '".(int)$_GET['idLink']."'");
  198. }
  199. Util::jump_to( 'index.php?modname=link&op=modlinkgui&idCategory='.$idCategory.'&back_url='.$back_coded);
  200. }
  201. // XXX: fixsequence
  202. function fixsequence() {
  203. checkPerm('view', false, 'storage');
  204. $back_url = urldecode( $_GET['back_url'] );
  205. $back_coded = htmlentities(urlencode( $back_url ));
  206. $reQuest = sql_query("
  207. SELECT idLink
  208. FROM ".$GLOBALS['prefix_lms']."_link
  209. WHERE idCategory = '".(int)$_GET['idCategory']."'
  210. ORDER BY sequence");
  211. $i = 1;
  212. while(list($idLink) = sql_fetch_row($reQuest)) {
  213. sql_query("
  214. UPDATE ".$GLOBALS['prefix_lms']."_link
  215. SET sequence = '".($i++)."'
  216. WHERE idLink = '$idLink'");
  217. }
  218. Util::jump_to( 'index.php?modname=link&op=modlinkgui&idCategory='.$_GET['idCategory'].'&back_url='.$back_coded);
  219. }
  220. // XXX: newlink
  221. function newlink() {
  222. checkPerm('view', false, 'storage');
  223. $lang =& DoceboLanguage::createInstance('link');
  224. require_once(_base_.'/lib/lib.form.php');
  225. $idCategory = importVar('idCategory', true, 0);
  226. $back_url = urldecode(importVar('back_url'));
  227. $back_coded = htmlentities(urlencode($back_url));
  228. $GLOBALS['page']->add(getTitleArea($lang->def('_SECT_LINK'), 'link')
  229. .'<div class="std_block">'
  230. .getBackUi('index.php?modname=link&op=modlinkgui&idCategory='
  231. .$idCategory.'&back_url='.$back_coded, $lang->def('_BACK'))
  232. .Form::openForm('faqform', 'index.php?modname=link&amp;op=inslink')
  233. .Form::openElementSpace()
  234. .Form::getHidden('idCategory', 'idCategory', $idCategory)
  235. .Form::getHidden('back_url', 'back_url', $back_coded)
  236. .Form::getTextfield($lang->def('_TITLE'), 'title', 'title', 255, $lang->def('_TITLE'))
  237. .Form::getTextfield($lang->def('_LINK_ADDRESS'), 'link_a', 'link_a', 255, 'http://')
  238. .Form::getSimpleTextarea($lang->def('_KEYWORD'), 'keyword', 'keyword', $lang->def('_KEYWORD'))
  239. .Form::getTextarea($lang->def('_DESCRIPTION'), 'description', 'description', $lang->def('_DESCRIPTION'))
  240. .Form::closeElementSpace()
  241. .Form::openButtonSpace()
  242. .Form::getButton('addlink', 'addlink', $lang->def('_INSERT'))
  243. .Form::closeButtonSpace()
  244. .Form::closeForm()
  245. .'</div>', 'content');
  246. }
  247. // XXX: inslink
  248. function inslink() {
  249. checkPerm('view', false, 'storage');
  250. $lang =& DoceboLanguage::createInstance('link');
  251. $idCategory = importVar('idCategory', true, 0);
  252. $back_url = urldecode(importVar('back_url'));
  253. $back_coded = htmlentities(urlencode($back_url));
  254. list($seq) = sql_fetch_row(sql_query("
  255. SELECT MAX(sequence)
  256. FROM ".$GLOBALS['prefix_lms']."_link
  257. WHERE idCategory = '".$idCategory."'"));
  258. $query_ins = "
  259. INSERT INTO ".$GLOBALS['prefix_lms']."_link
  260. SET idCategory = '".$idCategory."',
  261. title = '".$_POST['title']."',
  262. link_address = '".$_POST['link_a']."',
  263. keyword = '".$_POST['keyword']."',
  264. description = '".$_POST['description']."',
  265. sequence = '".($seq + 1)."'";
  266. if(!sql_query($query_ins)) {
  267. $GLOBALS['page']->add(getErrorUi($lang->def('_OPERATION_FAILURE')
  268. .getBackUi('index.php?modname=link&op=modlinkgui&idCategory='
  269. .$idCategory.'&back_url='.$back_coded, $lang->def('_BACK'))), 'content');
  270. return;
  271. }
  272. Util::jump_to( 'index.php?modname=link&op=modlinkgui&idCategory='.$idCategory.'&back_url='.$back_coded);
  273. }
  274. //DEBUG: arrivato qui
  275. // XXX: modlink
  276. function modlink() {
  277. checkPerm('view', false, 'storage');
  278. $lang =& DoceboLanguage::createInstance('link');
  279. require_once(_base_.'/lib/lib.form.php');
  280. $back_url = urldecode($_GET['back_url']);
  281. $back_coded = htmlentities(urlencode( $back_url ));
  282. list($idCategory, $title, $link_a, $keyword, $description) = sql_fetch_row(sql_query("
  283. SELECT idCategory, title, link_address, keyword, description
  284. FROM ".$GLOBALS['prefix_lms']."_link
  285. WHERE idLink = '".(int)$_GET['idLink']."'"));
  286. $GLOBALS['page']->add(getTitleArea($lang->def('_SECT_LINK'), 'link')
  287. .'<div class="std_block">'
  288. .getBackUi('index.php?modname=link&op=modlinkgui&idCategory='
  289. .$idCategory.'&back_url='.$back_coded, $lang->def('_BACK'))
  290. .Form::openForm('faqform', 'index.php?modname=link&amp;op=uplink')
  291. .Form::openElementSpace()
  292. .Form::getHidden('idLink', 'idLink', $_GET['idLink'])
  293. .Form::getHidden('back_url', 'back_url', $back_coded)
  294. .Form::getTextfield($lang->def('_TITLE'), 'title', 'title', 255, $title)
  295. .Form::getTextfield($lang->def('_LINK_ADDRESS'), 'link_a', 'link_a', 255, $link_a)
  296. .Form::getSimpleTextarea($lang->def('_KEYWORD'), 'keyword', 'keyword', $keyword)
  297. .Form::getTextarea($lang->def('_DESCRIPTION'), 'description', 'description', $description)
  298. .Form::closeElementSpace()
  299. .Form::openButtonSpace()
  300. .Form::getButton('modlink', 'modlink', $lang->def('_SAVE'))
  301. .Form::closeButtonSpace()
  302. .Form::closeForm()
  303. .'</div>', 'content');
  304. }
  305. // XXX: uplink
  306. function uplink() {
  307. checkPerm('view', false, 'storage');
  308. $lang =& DoceboLanguage::createInstance('link');
  309. $back_url = urldecode($_POST['back_url']);
  310. $back_coded = htmlentities(urlencode( $back_url ));
  311. list($idCategory) = sql_fetch_row(sql_query("
  312. SELECT idCategory
  313. FROM ".$GLOBALS['prefix_lms']."_link
  314. WHERE idLink = '".(int)$_POST['idLink']."'"));
  315. $query_ins = "
  316. UPDATE ".$GLOBALS['prefix_lms']."_link
  317. SET title = '".$_POST['title']."',
  318. link_address = '".$_POST['link_a']."',
  319. keyword = '".$_POST['keyword']."',
  320. description = '".$_POST['description']."'
  321. WHERE idLink = '".(int)$_POST['idLink']."'";
  322. if(!sql_query($query_ins)) {
  323. $GLOBALS['page']->add(getErrorUi($lang->def('_OPERATION_FAILURE')
  324. .getBackUi('index.php?modname=link&op=modlinkgui&idCategory='
  325. .$idCategory.'&back_url='.$back_coded, $lang->def('_BACK'))), 'content');
  326. return;
  327. }
  328. Util::jump_to( 'index.php?modname=link&op=modlinkgui&idCategory='.$idCategory.'&back_url='.$back_coded);
  329. }
  330. // XXX: dellink
  331. function dellink() {
  332. checkPerm('view', false, 'storage');
  333. $lang =& DoceboLanguage::createInstance('link');
  334. $back_url = urldecode($_GET['back_url']);
  335. $back_coded = htmlentities(urlencode( $back_url ));
  336. $GLOBALS['page']->add(getTitleArea($lang->def('_SECT_LINK'), 'link'), 'content');
  337. if( isset($_GET['confirm']) ) {
  338. list($idCategory, $seq) = sql_fetch_row(sql_query("
  339. SELECT idCategory, sequence
  340. FROM ".$GLOBALS['prefix_lms']."_link
  341. WHERE idLink = '".(int)$_GET['idLink']."'"));
  342. if(!sql_query("
  343. DELETE FROM ".$GLOBALS['prefix_lms']."_link
  344. WHERE idLink = '".(int)$_GET['idLink']."'")) {
  345. $GLOBALS['page']->add(getErrorUi($lang->def('_OPERATION_FAILURELINK').getBackUi('index.php?modname=link&op=modlinkgui&idCategory='
  346. .$idCategory.'&back_url='.$back_coded, $lang->def('_BACK'))), 'content');
  347. return;
  348. }
  349. sql_query("
  350. UPDATE ".$GLOBALS['prefix_lms']."_link
  351. SET sequence = sequence -1
  352. WHERE sequence > '".$seq."'");
  353. Util::jump_to( 'index.php?modname=link&op=modlinkgui&idCategory='.$idCategory.'&back_url='.$back_coded);
  354. }
  355. else {
  356. list($idCategory, $title, $link_a, $description) = sql_fetch_row(sql_query("
  357. SELECT idCategory, title, link_address, description
  358. FROM ".$GLOBALS['prefix_lms']."_link
  359. WHERE idLink = '".(int)$_GET['idLink']."'"));
  360. $GLOBALS['page']->add('<div class="std_block">'
  361. .getDeleteUi( $lang->def('_AREYOUSURE'),
  362. '<span>'.$lang->def('_TITLE').' : </span>'.$title.'<br />'
  363. .'<span>'.$lang->def('_URL').' : </span>'.$link_a.'<br />'
  364. .'<span>'.$lang->def('_DESCRIPTION').' : </span>'.$description,
  365. true,
  366. 'index.php?modname=link&amp;op=dellink&amp;idLink='.$_GET['idLink'].'&amp;back_url='
  367. .$back_coded.'&amp;confirm=1',
  368. 'index.php?modname=link&amp;op=modlinkgui&amp;idCategory='.$idCategory.'&amp;back_url='
  369. .$back_coded.''
  370. )
  371. .'</div>'
  372. .'</div>', 'content');
  373. }
  374. }
  375. // XXX: switch
  376. if(isset($GLOBALS['op'])) switch($GLOBALS['op']) {
  377. case "modlinkgui" : {
  378. $idCategory = importVar('idCategory', true, 0);
  379. $back_url = importVar('back_url');
  380. $object_link= createLO( 'link', $idCategory );
  381. $object_link->edit( $idCategory, urldecode( $back_url ) );
  382. };break;
  383. //add category
  384. case "addlinkcat" : {
  385. addlinkcat();
  386. };break;
  387. case "inslinkcat" : {
  388. inslinkcat();
  389. };break;
  390. //mod category
  391. case "modlinkcat" : {
  392. modlinkcat();
  393. };break;
  394. case "uplinkcat" : {
  395. uplinkcat();
  396. };break;
  397. //mod
  398. case "movedown" : {
  399. movelink('down');
  400. };break;
  401. case "moveup" : {
  402. movelink('up');
  403. };break;
  404. case "fixsequence" : {
  405. fixsequence();
  406. };break;
  407. //add link
  408. case "newlink" : {
  409. newlink();
  410. };break;
  411. case "inslink" : {
  412. inslink();
  413. };break;
  414. //mod link
  415. case "modlink" : {
  416. modlink();
  417. };break;
  418. case "uplink" : {
  419. uplink();
  420. };break;
  421. //del link
  422. case "dellink" : {
  423. dellink();
  424. };break;
  425. }
  426. }
  427. ?>