Advertisement
Guest User

Irc extends CI_Controller

a guest
Mar 12th, 2013
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.09 KB | None | 0 0
  1. <?php
  2. class Irc extends CI_Controller
  3. {
  4.  
  5. public $_countryId;
  6. public $_menuId;
  7. public $fileId;
  8. public $data = array();
  9. function __construct()
  10. {
  11. parent::__construct();
  12. //mb_internal_encoding("ISO-8859-1");
  13. //mb_http_output("ISO-8859-1");
  14.  
  15. $this->freakauth_light->check();
  16.  
  17. $this->load->helper('irc', 'Irc');
  18. $this->load->helper('form');
  19.  
  20. $this->load->library('report_status');
  21. //$this->report_status->init();
  22.  
  23. $this->_container = $this->config->item('FAL_template_dir').'template/container'; // Load View Container
  24.  
  25. //$this->fileContent;
  26. $this->_charLimit = 500; //the limit text per edit block.
  27. $this->_formAction = base_url().'index.php/tickets/add/editorial.html';
  28. $this->_fileLocation = 'http://mysite.com';
  29. $this->_js = "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/jquery.blockUI.js' type='text/javascript'></script>";
  30. $this->_js .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/irc.js' type='text/javascript'></script>";
  31. }
  32.  
  33. function index($id = null)
  34. {
  35. $this->load->library('country_assignment');
  36. $this->country_assignment->init();
  37.  
  38. $data['assignedCountries'] = $this->country_assignment->getAssignedCountries(getUserProperty('id'));
  39. $this->load->model('ircmodel', 'ircmodel');
  40. if($id){
  41. $data['cmenu'] = loadEditorialCountryMenu($id);
  42. $data['leftpage'] = $this->config->item('FAL_template_dir').'irc/countrymenu';
  43. }
  44. $data['page'] = $this->config->item('FAL_template_dir').'irc/test';
  45. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/jquery.boxy.js' type='text/javascript'></script>";
  46.  
  47. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/irc.js' type='text/javascript'></script>";
  48. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/ticketsubmit.js'type='text/javascript'></script>"; $this->load->vars($data);
  49. $this->load->view($this->_container);
  50.  
  51. }
  52.  
  53.  
  54.  
  55. /**/
  56.  
  57. function report($countryId, $menuId, $fileId)
  58. {
  59. $this->_countryId = $countryId;
  60. $this->_menuId = $menuId;
  61. $this->_fileId = $fileId;
  62.  
  63. $this->load->model('ircmodel', 'ircmodel');
  64. $filename = $this->_fileLocation.$this->ircmodel->getLeafName($this->_countryId).'/'.$fileId;
  65.  
  66. ob_start();
  67. readfile($filename);
  68. $contents = ob_get_contents();
  69. //if(!defined($contents)){$contents = "Error: File Not Found";
  70. ob_end_clean();
  71.  
  72. $cleancontent = htmlentities(utf8_encode($contents), ENT_QUOTES);
  73. $data['reports'] = $this->_buildForms($cleancontent, $data);
  74. $data['user'] = getUserProperty('id');
  75. $data['country'] = $this->ircmodel->getLeafName($this->_countryId);
  76. $data['section'] = $this->ircmodel->getTreeName($this->_menuId);
  77. $data['topic'] = $this->ircmodel->reverseTopicName($this->_countryId, $this->_menuId, $this->_fileId);
  78.  
  79.  
  80. $data['cmenu'] = loadEditorialCountryMenu($countryId, $this->_menuId);
  81. $data['leftpage'] = $this->config->item('FAL_template_dir').'irc/countrymenu';
  82.  
  83. $data['page'] = $this->config->item('FAL_template_dir').'irc/report';
  84.  
  85. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/jquery.boxy.js' type='text/javascript'></script>";
  86.  
  87. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/irc.js' type='text/javascript'></script>";
  88. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/ticketsubmit.js'type='text/javascript'></script>";
  89.  
  90. $this->load->vars($data);
  91. $this->load->view($this->_container);
  92.  
  93. }
  94.  
  95.  
  96. function _buildForms($fileContent, $data){
  97. $length = strlen($fileContent);
  98. // if the file content is smalled than the max edit block size, print the whole content as the first block
  99. if(!($length > $this->_charLimit))
  100. {
  101. $data[0] = $this->_printForm($fileContent,0, $data);
  102.  
  103. }else{// if multiple blocks are needed... start chopping
  104.  
  105. $continue = TRUE;
  106. $offset = 0;
  107. $lastp = 0;
  108. $data = array();
  109. $ps = array();
  110. $cropPoints = array();
  111.  
  112. // scrub input on instances of <p><i><b>
  113. $fileContent = str_replace("&lt;p&gt;&lt;i&gt;&lt;b&gt;", "&lt;p&gt;&lt;b&gt;&lt;i&gt;", $fileContent);
  114.  
  115.  
  116.  
  117. // first, let's find all instances of <p><b>
  118. while($continue){
  119. $p = stripos($fileContent, "&lt;p&gt;&lt;b&gt;",$offset);
  120. if($p === false){ $continue = FALSE;}
  121. else{ $ps[] = $p; $offset = $p+9;}
  122.  
  123. }
  124.  
  125. // set crop points
  126. $lastp = 0;
  127. foreach($ps as $loc){
  128.  
  129. if (($loc - $lastp) >= $this->_charLimit)
  130. {
  131. $cropPoints[] = $loc;
  132. $lastp = $loc;
  133. }
  134. }
  135. //set final crop point
  136. $cropPoints[] = strlen($fileContent);
  137.  
  138. if(isset($cropPoints[0])){
  139. // crop text, print forms
  140. $a = 0;
  141. $count = 0;
  142. foreach($cropPoints as $b){
  143.  
  144. $length = $b - $a;
  145.  
  146. $data[] = $this->_printForm(substr($fileContent, $a, $length), $count, $data);
  147.  
  148. $a=$b;
  149. $count++;
  150. }
  151.  
  152. }else{
  153. $data[0] = $this->_printForm($fileContent,0, $data);
  154. }
  155.  
  156. }
  157. //print_r($cropPoints);
  158. return $data;
  159. }
  160.  
  161.  
  162.  
  163.  
  164. function _printForm($value, $id, $data){
  165. $form = "<form class='editForm fedit".$id."' id='ticket_submit_".$id."' action='#' method='post'>";
  166. $form .= "<div id='msg_".$id."'>";
  167. $form .= "<input id='ticketType_".$id."' name='ticketType_".$id."' type='hidden' value='editorial'>";
  168. $form .= "<input id='idOfUser_".$id."' name='idOfUser_".$id."' type='hidden' value='".getUserProperty('id')."'>";
  169. $form .= "<input id='ircsubmit' name='ircsubmit' type='hidden' value='TRUE'>";
  170.  
  171. $form .= "<input id='country_".$id."' name='country_".$id."' type='hidden' value='".$this->ircmodel->getLeafName($this->_countryId)."'>";
  172.  
  173. $form .= "<input id='section_".$id."' name='section_".$id."' type='hidden' value='";
  174. $form .= $this->ircmodel->getTreeName($this->_menuId)." -> ";
  175. $form .= $this->ircmodel->reverseTopicName($this->_countryId,$this->_menuId,$this->_fileId);
  176. $form .= "'>";
  177.  
  178. $form .= "<input name='text_".$id."' id='text_".$id."' type='hidden' value='".$value."'>";
  179. $form .= "<label><strong>Subject Of Your Edits: <small>(You may edit this line )</small></strong></label>";
  180. $form .= "<input id='subject_".$id."' name='subject_".$id."' type='text' value='".$this->ircmodel->getLeafName($this->_countryId)." > ".$this->ircmodel->reverseTopicName($this->_countryId,$this->_menuId,$this->_fileId)."'>";
  181. $form .= "<label><strong>Text To Be Reviewed:</strong></label>";
  182.  
  183. $form .= "<div class='submittext'>".html_entity_decode($value, ENT_QUOTES)."</div>";
  184. $form .= "<label><strong>Detail Your Edits & Recommendations: <small>(Add your notes only, you do not need to copy the report's content.)</small></strong></label>";
  185.  
  186. $form .= "<textarea name='message_".$id."' id='message_".$id."'></textarea>";
  187. $form .= "<input type='submit' class='sendForm' value='Submit Edits' >";
  188. $form .= "</div>";
  189. $form .= "</form>";
  190.  
  191. $data['value'] .= "<div class='editBox' charset='uft-8' name='edit".$id."'>" . html_entity_decode($value, ENT_QUOTES);
  192. $data['value'] .= "</p><button class='showForm' type='button'>Click anywhere on the text</br> to edit this material.</button>";
  193. $data['value'] .= "</div>";
  194. $data['form']=$form;
  195. return $data;
  196. }
  197.  
  198. function buildDBlist(){
  199. echo "<p>Updating Country List.......</p>";
  200. buildCountryDB();
  201. echo "<p>Done!</p>";
  202. }
  203.  
  204.  
  205.  
  206.  
  207.  
  208. function testreport()
  209. {
  210.  
  211. $contents ="<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris bibendum iaculis arcu nec ultricies. Morbi eu lectus in lectus aliquam tempus. Ut molestie ultrices sodales. In sed velit nibh. Nam eu enim eu erat molestie volutpat. Duis luctus metus non neque mollis consectetur. Curabitur consequat ligula feugiat ante facilisis nec fringilla nisl commodo. Quisque pulvinar massa non libero viverra sed fermentum erat elementum. Mauris quis augue risus, vel accumsan magna. Sed sed metus justo. Nulla dictum, lectus sit amet dignissim lobortis, tortor nulla pellentesque arcu, a egestas neque nisi sed justo.</p><p>Vivamus tortor felis, aliquet id ullamcorper eget, viverra non odio. Curabitur commodo tincidunt arcu. Curabitur imperdiet sollicitudin convallis. Etiam quis tellus at enim eleifend bibendum a vitae sapien. Suspendisse vitae metus leo, eu vehicula tellus. Nunc in libero at tortor congue facilisis. Integer egestas enim sed lorem dapibus congue. In hac habitasse platea dictumst. Suspendisse lacinia, dolor vel viverra viverra, purus turpis ultricies lacus, sit amet molestie tortor massa posuere enim. Duis dui mi, viverra vitae lobortis eget, auctor in enim. Sed nec risus odio, vitae aliquam quam. Vestibulum nec fringilla nisl.</p><p>Donec ac magna in elit auctor interdum. Nullam accumsan, lectus ac imperdiet laoreet, leo risus scelerisque orci, pretium sodales nisl tellus non arcu. Cras tempus aliquet diam sit amet semper. Integer consectetur nunc at lacus eleifend quis pharetra ligula faucibus. Phasellus pretium semper nulla a rutrum. Nunc et neque vitae elit egestas dictum. Aenean metus purus, congue nec blandit sagittis, accumsan vitae lacus. Duis id risus quis dui facilisis scelerisque sed a ante. Phasellus ac facilisis elit. Ut sagittis dolor at mi vehicula dapibus. Mauris vel turpis nunc. Etiam vitae vehicula urna. Quisque sed justo id leo laoreet scelerisque. Proin eget est vitae nisi ullamcorper sagittis. Cras massa quam, gravida sed cursus eu, sagittis at mi. Vivamus pulvinar nunc eu enim tincidunt sed tristique purus commodo. Proin vehicula malesuada lectus sit amet malesuada. Duis vel massa quis ipsum feugiat tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse luctus odio quis leo bibendum porttitor.</p><b><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris bibendum iaculis arcu nec ultricies. Morbi eu lectus in lectus aliquam tempus. Ut molestie ultrices sodales. In sed velit nibh. Nam eu enim eu erat molestie volutpat. Duis luctus metus non neque mollis consectetur. Curabitur consequat ligula feugiat ante facilisis nec fringilla nisl commodo. Quisque pulvinar massa non libero viverra sed fermentum erat elementum. Mauris quis augue risus, vel accumsan magna. Sed sed metus justo. Nulla dictum, lectus sit amet dignissim lobortis, tortor nulla pellentesque arcu, a egestas neque nisi sed justo.</p><p>Vivamus tortor felis, aliquet id ullamcorper eget, viverra non odio. Curabitur commodo tincidunt arcu. Curabitur imperdiet sollicitudin convallis. Etiam quis tellus at enim eleifend bibendum a vitae sapien. Suspendisse vitae metus leo, eu vehicula tellus. Nunc in libero at tortor congue facilisis. Integer egestas enim sed lorem dapibus congue. In hac habitasse platea dictumst. Suspendisse lacinia, dolor vel viverra viverra, purus turpis ultricies lacus, sit amet molestie tortor massa posuere enim. Duis dui mi, viverra vitae lobortis eget, auctor in enim. Sed nec risus odio, vitae aliquam quam. Vestibulum nec fringilla nisl.</p><p>Donec ac magna in elit auctor interdum. Nullam accumsan, lectus ac imperdiet laoreet, leo risus scelerisque orci, pretium sodales nisl tellus non arcu. Cras tempus aliquet diam sit amet semper. Integer consectetur nunc at lacus eleifend quis pharetra ligula faucibus. Phasellus pretium semper nulla a rutrum. Nunc et neque vitae elit egestas dictum. Aenean metus purus, congue nec blandit sagittis, accumsan vitae lacus. Duis id risus quis dui facilisis scelerisque sed a ante. Phasellus ac facilisis elit. Ut sagittis dolor at mi vehicula dapibus. Mauris vel turpis nunc. Etiam vitae vehicula urna. Quisque sed justo id leo laoreet scelerisque. Proin eget est vitae nisi ullamcorper sagittis. Cras massa quam, gravida sed cursus eu, sagittis at mi. Vivamus pulvinar nunc eu enim tincidunt sed tristique purus commodo. Proin vehicula malesuada lectus sit amet malesuada. Duis vel massa quis ipsum feugiat tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse luctus odio quis leo bibendum porttitor.</p>";
  212.  
  213. $cleancontent = htmlentities(utf8_encode($contents), ENT_QUOTES);
  214.  
  215. $data['reports'] = $this->_buildFormsBlank($cleancontent, $data);
  216. $data['user'] = getUserProperty('id');
  217. $data['country'] = "Lorem ipsum";
  218. $data['section'] = "Pretium Semper";
  219. $data['topic'] = "Cum sociis natoque ";
  220.  
  221.  
  222. $data['menu'] = "<div><div><li></li></div></div>";
  223. $data['leftpage'] = $this->config->item('FAL_template_dir').'irc/countrymenu';
  224.  
  225. $data['page'] = $this->config->item('FAL_template_dir').'irc/report';
  226. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/jquery.boxy.js' type='text/javascript'></script>";
  227. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/irc.js' type='text/javascript'></script>";
  228. $data['js'] .= "<script src='".base_url().$this->config->item('FAL_assets_shared').'/'.$this->config->item('FAL_js')."/ticketsubmit.js'type='text/javascript'></script>";
  229.  
  230. $this->load->vars($data);
  231. $this->load->view($this->config->item('FAL_template_dir').'template/container'); // Load View Container);
  232.  
  233. }
  234.  
  235. function _printFormBlank($value, $id, $data){
  236. $form = "<form class='editForm fedit".$id."' id='ticket_submit_".$id."' action='#' method='post'>";
  237. $form .= "<div id='msg_".$id."'>";
  238.  
  239.  
  240. $form .= "<input id='ticketType_".$id."' name='ticketType_".$id."' type='hidden' value='editorial'>";
  241. $form .= "<input id='idOfUser_".$id."' name='idOfUser_".$id."' type='hidden' value=''>";
  242. $form .= "<input id='ircsubmit' name='ircsubmit' type='hidden' value='TRUE'>";
  243.  
  244. $form .= "<input id='country_".$id."' name='country_".$id."' type='hidden' value=''>";
  245.  
  246. $form .= "<input id='section_".$id."' name='section_".$id."' type='hidden' value=''>";
  247.  
  248. $form .= "<input name='text_".$id."' id='text_".$id."' type='hidden' value='".$value."'>";
  249. $form .= "<label><strong>Subject Of Your Edits: <small>(You may edit this line )</small></strong></label>";
  250. $form .= "<input id='subject_".$id."' name='subject_".$id."' type='text' value=''>";
  251. $form .= "<label><strong>Text To Be Reviewed:</strong></label>";
  252.  
  253. $form .= "<div class='submittext'>".html_entity_decode($value, ENT_QUOTES)."</div>";
  254. $form .= "<label><strong>Detail Your Edits & Recommendations: <small>(Add your notes only, you do not need to copy the report's content.)</small></strong></label>";
  255.  
  256. $form .= "<textarea name='message_".$id."' id='message_".$id."'></textarea>";
  257. $form .= "<input type='submit' class='sendForm' value='Submit Edits' >";
  258.  
  259. $form .= "</div>";
  260. $form .= "</form>";
  261. $data['form']=$form;
  262.  
  263. $data['value'] .= "<div class='editBox' charset='uft-8' name='edit".$id."'>" . html_entity_decode($value, ENT_QUOTES);
  264. $data['value'] .= "</p><button class='showForm' type='button'>Click anywhere on the text</br> to edit this material.</button>";
  265. $data['value'] .= "</div>";
  266. return $data;
  267. }
  268.  
  269.  
  270. function _buildFormsBlank($fileContent, $data){
  271. $length = strlen($fileContent);
  272. // if the file content is smalled than the max edit block size, print the whole content as the first block
  273. if(!($length > $this->_charLimit))
  274. {
  275. $data[0] = $this->_printFormBlank($fileContent,0, $data);
  276.  
  277. }else{// if multiple blocks are needed... start chopping
  278.  
  279. $continue = TRUE;
  280. $offset = 0;
  281. $lastp = 0;
  282. $data = array();
  283. $ps = array();
  284. $cropPoints = array();
  285. // first, let's find all instances of <p>
  286. while($continue){
  287. $p = stripos($fileContent, "&lt;b&gt;",$offset);
  288. if($p === false){ $continue = FALSE;}
  289. else{ $ps[] = $p; $offset = $p+9;}
  290. }
  291. // set crop points
  292. $lastp = 0;
  293. foreach($ps as $loc){
  294. if (($loc - $lastp) >= $this->_charLimit)
  295. {
  296. $cropPoints[] = $loc;
  297. $lastp = $loc;
  298. }
  299. }
  300. //set final crop point
  301. $cropPoints[] = strlen($fileContent);
  302. if(isset($cropPoints[0])){
  303. // crop text, print forms
  304. $a = 0;
  305. $count = 0;
  306. foreach($cropPoints as $b){
  307. $length = $b - $a;
  308. $data[] = $this->_printFormBlank(substr($fileContent, $a, $length), $count, $data);
  309. $a=$b;
  310. $count++;
  311. }
  312. }else{$data[0] = $this->_printFormBlank($fileContent,0, $data);} }
  313. return $data;
  314. }
  315.  
  316. // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //
  317.  
  318.  
  319. function ajaxupdate(){
  320. $countryId = $this->input->post('countryId');
  321. $page = $this->input->post('page');
  322. $status = $this->input->post('status');
  323.  
  324. if($userId==null){$userId = getUserProperty('id');}
  325. echo "ajax running";
  326. if($status == 'true'){
  327. $this->report_status->setStatus($userId, $countryId, $page, 1);
  328. }else{
  329. $this->report_status->setStatus($userId, $countryId, $page, 0);
  330. }
  331. }
  332.  
  333.  
  334.  
  335. }
  336. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement