Advertisement
Guest User

Untitled

a guest
Sep 29th, 2012
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.49 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * Elgg Feedback plugin
  5.  * Feedback interface for Elgg sites
  6.  *
  7.  * @package Feedback
  8.  * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
  9.  * @author Prashant Juvekar
  10.  * @copyright Prashant Juvekar
  11.  * @link http://www.linkedin.com/in/prashantjuvekar
  12.  *
  13.  * for Elgg 1.8 by iionly
  14.  */
  15.  
  16. global $CONFIG;
  17.  
  18. $user_ip = $_SERVER[REMOTE_ADDR];
  19.  
  20. $user_id = elgg_echo('feedback:default:id');
  21. if (elgg_is_logged_in()) {
  22.     $user = elgg_get_logged_in_user_entity();
  23.     $user_id = $user->name . " (" . $user->email .")";
  24. }
  25.  
  26. $ts = time();
  27. $token = generate_action_token($ts);
  28. $feedback_url = $vars['url'] . "action/feedback/submit_feedback?&__elgg_token=$token&__elgg_ts=$ts";
  29.  
  30. $progress_img = '<img src="'.$CONFIG->wwwroot.'mod/feedback/_graphics/ajax-loader.gif" alt="'.elgg_echo('feedback:submit_msg').'" />';
  31. $open_img = '<img src="'.$CONFIG->wwwroot.'mod/feedback/_graphics/slide-button-open.gif" alt="'.elgg_echo('feedback:label').'" title="'.elgg_echo('feedback:label').'" />';
  32. $close_img = '<img src="'.$CONFIG->wwwroot.'mod/feedback/_graphics/slide-button-close.gif" alt="'.elgg_echo('feedback:label').'" title="'.elgg_echo('feedback:label').'" />';
  33. ?>
  34.  
  35. <div id="feedbackWrapper">
  36.  
  37.     <div id="feedBackToggler">
  38.         <a id="feedBackTogglerLink" href="javascript:void(0)" onclick="FeedBack_Toggle();this.blur();" style="float:left;position:relative;left:-1px;">
  39.             <?php echo $open_img ?>
  40.         </a>
  41.     </div>
  42.  
  43.     <div id="feedBackContent">
  44.         <div style="padding:10px;">
  45.             <h1 style="padding-bottom:10px;">
  46.                 <?php echo elgg_echo('feedback:title'); ?>
  47.             </h1>
  48.  
  49.             <div style="padding-bottom:10px;">
  50.                 <?php echo elgg_echo('feedback:message'); ?>
  51.             </div>
  52.  
  53.             <div id="feedBackFormInputs">
  54.                 <form id="feedBackForm" action="" method="post" onsubmit="FeedBack_Send();return false;">
  55.                     <div>
  56.                         <div style="float:left"><b><?php echo elgg_echo('feedback:list:mood')?>:&nbsp;&nbsp;&nbsp;&nbsp;</b></div>
  57.                         <div style="float:left">
  58.                         <select id="mood">
  59.                             <option value="angry" selected> <?php echo elgg_echo('feedback:mood:angry')?> </option>
  60.                             <option value="neutral"> <?php echo elgg_echo('feedback:mood:neutral')?> </option>
  61.                             <option value="happy"> <?php echo elgg_echo('feedback:mood:happy')?> </option>
  62.                         </select>
  63.                         </div>                        
  64.                         <div style="clear:both;"></div>
  65.                     </div>
  66.                     <br />
  67.                     <div>
  68.                         <div style="float:left"><b><?php echo elgg_echo('feedback:list:about')?>:&nbsp;&nbsp;&nbsp;&nbsp;</b></div>
  69.                         <div style="float:left">
  70.                         <select id="about">
  71.                             <option value="bug_report" selected> <?php echo elgg_echo('feedback:about:bug_report')?> </option>
  72.                             <option value="content"> <?php echo elgg_echo('feedback:about:content')?> </option>
  73.                             <option value="suggestions"> <?php echo elgg_echo('feedback:about:suggestions')?> </option>
  74.                             <option value="compliment"> <?php echo elgg_echo('feedback:about:compliment')?> </option>
  75.                             <option value="other"> <?php echo elgg_echo('feedback:about:other')?> </option>
  76.                         </select>
  77.                         </div>
  78.                         <div style="clear:both;"></div>
  79.                     </div>
  80.                     <br />
  81.                     <div>
  82.                         <input type="text" name="feedback_id" value="<?php echo $user_id?>" id="feedback_id" size="30" onfocus="if (this.value == '<?php echo elgg_echo('feedback:default:id')?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php echo elgg_echo('feedback:default:id')?>';}" class="feedbackText" />
  83.                     </div>
  84.                     <div style="padding-top:5px;">
  85.                         <textarea name="feedback_txt" cols="34" rows="10" id="feedback_txt" onfocus="if (this.value == '<?php echo elgg_echo('feedback:default:txt')?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php echo elgg_echo('feedback:default:txt')?>';}" class="feedbackTextbox mceNoEditor"><?php echo elgg_echo('feedback:default:txt')?></textarea>
  86.                      </div>
  87.                      <?php
  88. //                         // only use captcha when logged out
  89. //                         if (!elgg_is_logged_in() ) {
  90. //                             // if captcha functions are loaded, then use captcha
  91. //                             if ( function_exists ( "captcha_generate_token" ) ) {
  92. //                                 echo elgg_view('input/captcha');
  93. //                             }
  94. //                         }
  95.                      ?>
  96.                     <div style="padding-top:10px;">
  97.                         <input id="feedback_send_btn"   name="<?php echo elgg_echo('send'); ?>"   value="Send"   type="button" class="elgg-button elgg-button-submit" onclick="FeedBack_Send();"  />
  98.                         <input id="feedback_cancel_btn" name="<?php echo elgg_echo('cancel'); ?>" value="Cancel" type="button" class="elgg-button elgg-button-cancel" onclick="FeedBack_Toggle();" />
  99.                         &nbsp;
  100.                     </div>
  101.                 </form>
  102.             </div>
  103.             <div id="feedBackFormStatus"></div>
  104.             <div id='feedbackClose' style="padding-top:10px;">
  105.                 <input id="feedback_close_btn"   name="<?php echo elgg_echo('close'); ?>"   value="Close"   type="button" class="elgg-button elgg-button-cancel" onclick="FeedBack_Toggle();"  />
  106.             </div>
  107.         </div>
  108.     </div>
  109.  
  110.     <div style="clear:both;"></div>
  111.  
  112. </div>
  113.  
  114. <script type="text/javascript">
  115.  
  116.     <?php
  117.         // if user is logged in then disable the feedback ID
  118.         if ( elgg_is_logged_in() ) {
  119.             echo "$('#feedback_id').attr ('disabled', 'disabled');";
  120.         }
  121.     ?>
  122.  
  123.     $("#feedbackWrapper").width("50px");
  124.     $('#feedbackClose').hide();
  125.  
  126.     var toggle_state = 0;
  127.  
  128.     function FeedBack_Toggle() {
  129.         if ( toggle_state ) {
  130.             toggle_state = 0;
  131.             $("#feedbackWrapper").width("50px");
  132.             $("#feedBackTogglerLink").html('<?php echo $open_img?>');
  133.             $('#feedBackFormInputs').show();
  134.                 $("#feedBackFormStatus").html("");
  135.             $('#feedbackClose').hide();
  136.             document.forms["feedBackForm"].reset();
  137.         } else {
  138.             toggle_state = 1;
  139.             $("#feedbackWrapper").width("450px");
  140.             $("#feedBackTogglerLink").html('<?php echo $close_img?>');
  141.         }
  142.  
  143.         $("#feedBackContent").toggle();
  144.     }
  145.  
  146.     function FeedBack_Send() {
  147.         var page = encodeURIComponent(location.href);
  148.         var mood = $('#mood option:selected').val();
  149.         var about = $('#about option:selected').val();
  150.         var id = $("#feedback_id").val().replace(/^\s+|\s+$/g,"");
  151.         var txt = encodeURIComponent( $("#feedback_txt").val().replace(/^\s+|\s+$/g,"") );
  152.  
  153. //         <?php
  154. //             // only use captcha when logged out
  155. //             if (!elgg_is_logged_in() ) {
  156. //         ?>
  157. //                 var captcha_token = $('input[name=captcha_token]').val();
  158. //                 var captcha_input = $('input[name=captcha_input]').val();
  159. //                 if ( captcha_token != '' && captcha_input == '' ) {
  160. //                     alert ( "<?php echo elgg_echo('feedback:captcha:blank')?>" );
  161. //                     return;
  162. //                 }
  163. //         <?php
  164. //             }
  165. //         ?>
  166.  
  167.         // if no address provided...
  168.         if ( id == '' || id == "<?php echo elgg_echo('feedback:default:id')?>" ) {
  169.             id = "<?php echo $user_ip ?>";
  170.         }
  171.  
  172.         // if no text provided...
  173.         if ( txt == '' || txt == encodeURIComponent("<?php echo elgg_echo('feedback:default:txt')?>") ) {
  174.             alert ( "<?php echo elgg_echo('feedback:default:txt:err')?>" );
  175.             return;
  176.         }
  177.  
  178.         // show progress indicator
  179.         $('#feedBackFormStatus').html('<?php echo $progress_img?>');
  180.  
  181.         // disable the send button while we are submitting
  182.         $('#feedBackFormInputs').hide();
  183.  
  184.         // fire the AJAX query
  185.         jQuery.ajax( {
  186.             url: "<?php echo $feedback_url?>",
  187.             type: "POST",
  188.             <?php
  189. //                 // only use captcha when logged out
  190. //                 if (!elgg_is_logged_in() ) {
  191.             ?>
  192. //                 data: "captcha_input="+captcha_input+"&captcha_token="+captcha_token+"&page="+page+"&mood="+mood+"&about="+about+"&id="+id+"&txt="+txt,
  193.             <?php
  194. //                 } else {
  195.             ?>
  196.                 data: "page="+page+"&mood="+mood+"&about="+about+"&id="+id+"&txt="+txt,
  197.             <?php
  198. //                 }
  199.             ?>
  200.             cache: false,
  201.             dataType: "html",
  202.             error: function() {
  203.                 //$('#feedBackFormInputs').show();
  204.                 $("#feedBackFormStatus").html("<div id='feedbackError'><?php echo elgg_echo('feedback:submit_err')?></div>");
  205.                 $('#feedbackClose').show();
  206.                 document.forms["feedBackForm"].reset();
  207.             },
  208.             success: function(data) {
  209.                 //$('#feedBackFormInputs').show(); // show form
  210.                 $("#feedBackFormStatus").html(data);
  211.                 $('#feedbackClose').show();
  212.                 document.forms["feedBackForm"].reset();
  213.             }
  214.         });
  215.     }
  216.  
  217. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement