email_links.lib.js.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Pseudo JavaScript library to deal with event handlers.
  5. * This script needs to be included from a script where the global include file has already been loaded.
  6. * @package chamilo.inc.lib.javascript
  7. * @author Yannick Warnier <ywarnier@beeznest.org>
  8. */
  9. /**
  10. * If the user is not logged in, don't define anything, so the normal
  11. * handling of mailto link can proceed
  12. */
  13. if(!empty($_user['user_id']) AND string_2_boolean(api_get_setting('allow_email_editor'))){
  14. ?>
  15. <script type="text/javascript">
  16. /**
  17. * Assigns any event handler to any element
  18. * @param object Element on which the event is added
  19. * @param string Name of event
  20. * @param string Function to trigger on event
  21. * @param boolean Capture the event and prevent
  22. */
  23. function addEvent(elm, evType, fn, useCapture)
  24. { //by Scott Andrew
  25. if(elm.addEventListener){
  26. elm.addEventListener(evType, fn, useCapture);
  27. return true;
  28. } else if(elm.attachEvent) {
  29. var r = elm.attachEvent('on' + evType, fn);
  30. return r;
  31. } else {
  32. elm['on' + evType] = fn;
  33. }
  34. }
  35. /**
  36. * Adds the event listener
  37. */
  38. function addListeners(e) {
  39. var my_links = document.getElementsById('clickable_email_link');
  40. for(var i=0;i < my_links.length;i++)
  41. {
  42. addEvent(my_links[i],'click',loadEmailEditor,false);
  43. }
  44. }
  45. /**
  46. * Loads a specific page on event triggering
  47. */
  48. function loadEmailEditor(e)
  49. {
  50. var el;
  51. if(window.event && window.event.srcElement)
  52. {
  53. el = window.event.srcElement;
  54. }
  55. if (e && e.target)
  56. {
  57. el = e.target;
  58. }
  59. if(!el)
  60. {
  61. return;
  62. }
  63. //el is now my link object, so I can get el.href here to load the new window
  64. var link = el.href.replace('mailto:','');
  65. document.location = "<?php echo api_get_path(WEB_CODE_PATH);?>inc/email_editor.php?dest=" + link;
  66. //cancel default link action
  67. if(window.event && window.event.returnValue){
  68. window.event.returnValue = false;
  69. }
  70. if(e && e.preventDefault){
  71. e.preventDefault();
  72. }
  73. }
  74. addEvent(window,'load',addListeners,false);
  75. </script>
  76. <?php
  77. }
  78. ?>