PageRenderTime 25ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/actions/languagepacks/delete.php

https://bitbucket.org/moodsdesign-ondemand/languagepacks
PHP | 67 lines | 54 code | 10 blank | 3 comment | 12 complexity | 49b05ca97a9802070935fabf95594204 MD5 | raw file
  1. <?php
  2. if ( get_current_language() != 'en' ) {
  3. register_error(elgg_echo('languagepacks:error:delete_lang'));
  4. forward(REFERER);
  5. }
  6. require_once elgg_get_plugins_path() . 'languagepacks/lib/elgg_language_packs/elgg_language_packs.php';
  7. $release = get_version(true);
  8. $filters = array();
  9. $langstring = get_input('locales-selection');
  10. if ( $langstring ) {
  11. $filters['langs'] = explode('|', $langstring);
  12. } else {
  13. $filters['langs'] = null;
  14. }
  15. unset($langstring);
  16. $projstring = get_input('cores-selection');
  17. if ( $projstring ) {
  18. $filters['projs'] = explode('|', $projstring);
  19. } else {
  20. $filters['projs'] = null;
  21. }
  22. unset($projstring);
  23. $projstring = get_input('plugins-selection');
  24. if ( $projstring ) {
  25. $filters['projs'] = array_merge((array)$filters['projs'], explode('|', $projstring));
  26. }
  27. unset($projstring);
  28. $filters['ignore_en'] = true;
  29. $filters['elgg_release'] = $release;
  30. $filters['needs_manifest'] = true;
  31. $olddir = elgg_get_root_path();
  32. $callback = 'elgglp_delete_languages';
  33. switch ( elgglp_recurse_language_pack($olddir, $filters, $callback) ) {
  34. case ELGGLP_ERR_STRUCTURE:
  35. register_error(elgg_echo('languagepacks:error:structure'));
  36. forward(REFERER);
  37. case ELGGLP_ERR_VERSION:
  38. register_error(elgg_echo('languagepacks:error:version'));
  39. forward(REFERER);
  40. case ELGGLP_OK:
  41. // if the language does not exist anymore, remove JavaScript file
  42. $languages = elgglp_get_installed_translations();
  43. $jsdir = "$olddir/views/default/js/languages";
  44. $jsfiles = array_merge(glob("$jsdir/??.php"), glob("$jsdir/??[-_]??.php"));
  45. foreach ( $jsfiles as $jsfile ) {
  46. // basic name of the file is the locale name
  47. $lang = basename($jsfile, '.php');
  48. if ( $lang != 'en' && !$languages[$lang] && file_exists($jsfile) ) {
  49. @unlink($jsfile);
  50. }
  51. }
  52. // return result of deletion
  53. $ts = time();
  54. $token = generate_action_token($ts);
  55. $flush_link = elgg_get_site_url() . "action/admin/site/flush_cache?__elgg_ts=$ts&__elgg_token=$token";
  56. system_message(sprintf(elgg_echo('languagepacks:delete:success'), $flush_link));
  57. }