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

/inc/app/xed/boxes/properties/index.php

https://github.com/lux/sitellite
PHP | 123 lines | 97 code | 23 blank | 3 comment | 10 complexity | 08bec32396c1d4fa792782f96222e5c6 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, Apache-2.0, GPL-3.0
  1. <?php
  2. loader_import ('saf.MailForm');
  3. loader_import ('saf.File.Directory');
  4. loader_import ('saf.HTML.CSS_Parser');
  5. global $cgi;
  6. if ($cgi->tag == 'xt:box') {
  7. $attrs = array (
  8. (object) array ('name' => 'name', 'typedef' => "type=text\nalt=Name"),
  9. (object) array ('name' => 'title', 'typedef' => 'type=hidden'),
  10. (object) array ('name' => 'style', 'typedef' => 'type=hidden'),
  11. );
  12. // parse box settings for custom attributes
  13. list ($app, $name) = explode ('/', $cgi->name, 2);
  14. $settings = loader_box_get_settings ($name, $app);
  15. foreach ($settings as $k => $v) {
  16. if ($k == 'Meta') {
  17. continue;
  18. }
  19. $attrs[] = (object) array ('name' => $k, 'typedef' => ini_write ($v));
  20. }
  21. //info ($settings);
  22. } else {
  23. $attrs = db_fetch_array (
  24. 'select * from xed_attributes where element = ? order by id asc',
  25. $cgi->tag
  26. );
  27. $defaults = db_fetch_array (
  28. 'select * from xed_attributes where element = ? order by id asc',
  29. 'default'
  30. );
  31. $attrs = array_merge ($attrs, $defaults);
  32. }
  33. $css = new CSS_Parser ();
  34. $classes = array ();
  35. $ids = array ();
  36. foreach (Dir::find ('*.css', 'inc/html/' . conf ('Server', 'default_template_set')) as $file) {
  37. $css->parse (@join ('', @file ($file)));
  38. $classes = array_merge ($classes, $css->getClasses ($cgi->tag));
  39. $ids = array_merge ($ids, $css->getIDs ($cgi->tag));
  40. }
  41. $classes = array_unique ($classes);
  42. $ids = array_unique ($ids);
  43. $form = new MailForm;
  44. ini_add_filter ('ini_filter_split_comma_single', array (
  45. 'rule 0', 'rule 1', 'rule 2', 'rule 3', 'rule 4', 'rule 5', 'rule 6', 'rule 7', 'rule 8',
  46. 'button 0', 'button 1', 'button 2', 'button 3', 'button 4', 'button 5', 'button 6', 'button 7', 'button 8',
  47. 'submitButtons',
  48. ));
  49. foreach ($attrs as $attr) {
  50. $w =& $form->createWidget ($attr->name, ini_parse ($attr->typedef, false));
  51. if (isset ($cgi->{$attr->name})) {
  52. $w->setDefault ($cgi->{$attr->name});
  53. }
  54. }
  55. ini_clear ();
  56. if (isset ($form->widgets['id'])) {
  57. $form->widgets['id']->setValues (
  58. array_merge (
  59. array ('' => '- ' . intl_get ('SELECT') . ' -'),
  60. assocify ($ids)
  61. )
  62. );
  63. }
  64. if (isset ($form->widgets['class'])) {
  65. $form->widgets['class']->setValues (
  66. array_merge (
  67. array ('' => '- ' . intl_get ('SELECT') . ' -'),
  68. assocify ($classes)
  69. )
  70. );
  71. }
  72. $w =& $form->addWidget ('hidden', 'ifname');
  73. $w->setValue ($cgi->ifname);
  74. $w =& $form->addWidget ('hidden', 'tag');
  75. $w->setValue ($cgi->tag);
  76. $w =& $form->addWidget ('template', 'tpl');
  77. $w->template = 'properties.spt';
  78. $w =& $form->addWidget ('msubmit', 'submit_button');
  79. $b1 =& $w->getButton ();
  80. $b1->setValues (intl_get ('OK'));
  81. //$b1->extra = 'onclick="return properties_ok (this.form)"';
  82. $b2 =& $w->addButton ('submit_button', intl_get ('Cancel'));
  83. $b2->extra = 'onclick="return properties_cancel (this.form)"';
  84. page_title (intl_get ('Editing Element') . ': ' . strtoupper ($cgi->tag));
  85. if ($form->invalid ($cgi)) {
  86. $form->setValues ($cgi);
  87. echo $form->show ();
  88. } else {
  89. $form->setValues ($cgi);
  90. $vals = $form->getValues ($cgi);
  91. $ifname = $vals['ifname'];
  92. unset ($vals['ifname']);
  93. $tag = $vals['tag'];
  94. unset ($vals['tag']);
  95. unset ($vals['tpl']);
  96. unset ($vals['submit_button']);
  97. echo template_simple ('properties_return.spt', array ('ifname' => $ifname, 'vals' => $vals));
  98. exit;
  99. }
  100. ?>