template.destroy_dir.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Template Lite template_destroy_dir template internal module
  4. *
  5. * Type: template
  6. * Name: template_destroy_dir
  7. */
  8. function template_destroy_dir($file, $id, $dir, &$object)
  9. {
  10. if ($file == null && $id == null)
  11. {
  12. if (is_dir($dir))
  13. {
  14. if($d = opendir($dir))
  15. {
  16. while(($f = readdir($d)) !== false)
  17. {
  18. if ($f != '.' && $f != '..')
  19. {
  20. template_rm_dir($dir.$f.DIRECTORY_SEPARATOR);
  21. }
  22. }
  23. }
  24. }
  25. }
  26. else
  27. {
  28. if ($id == null)
  29. {
  30. $object->template_dir = $object->_get_dir($object->template_dir);
  31. $name = ($object->encode_file_name) ? md5($object->template_dir.$file).'.php' : str_replace(".", "_", str_replace("/", "_", $file)).'.php';
  32. @unlink($dir.$name);
  33. }
  34. else
  35. {
  36. $_args = "";
  37. foreach(explode('|', $id) as $value)
  38. {
  39. $_args .= $value.DIRECTORY_SEPARATOR;
  40. }
  41. template_rm_dir($dir.DIRECTORY_SEPARATOR.$_args);
  42. }
  43. }
  44. }
  45. function template_rm_dir($dir)
  46. {
  47. if (is_file(substr($dir, 0, -1)))
  48. {
  49. @unlink(substr($dir, 0, -1));
  50. return;
  51. }
  52. if ($d = opendir($dir))
  53. {
  54. while(($f = readdir($d)) !== false)
  55. {
  56. if ($f != '.' && $f != '..')
  57. {
  58. template_rm_dir($dir.$f.DIRECTORY_SEPARATOR, $object);
  59. }
  60. }
  61. @rmdir($dir.$f);
  62. }
  63. }
  64. ?>