Advertisement
Guest User

Untitled

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