Overview

Packages

  • controller
  • models
  • None

Classes

  • Ajax
  • Article
  • Cache
  • Employee
  • Firefly
  • gmreader
  • gmsite
  • Home
  • Link
  • Merchant
  • Model_article
  • Model_cache
  • Model_employee
  • Model_firefly
  • Model_gmreader
  • Model_gmsite
  • Model_link
  • Model_merchant
  • Model_reference
  • Model_user
  • Reference
  • Setting
  • User

Functions

  • check_permission
  • data_status
  • data_status_select
  • dump_html_tree
  • employee_select
  • file_get_html
  • generate_page
  • gerenate_pager_from_table
  • get_desc_asc
  • get_url_support
  • is_admin
  • is_loggedin
  • link_extractor
  • merchant_status
  • reference_reverter
  • role_select
  • siteinfo
  • str_get_html
  • yes_no
  • yesno_select
  • Overview
  • Package
  • Class
  1: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2: 
  3: class Article extends CI_Controller {
  4: 
  5:     function __construct(){
  6:         parent::__construct();
  7:         $this->load->driver('cache', array('backup' => 'file'));
  8:     }
  9: 
 10:     /* Article List Page */
 11:     public function index()
 12:     {
 13:         $this->load->model('Model_article');
 14:         $this->Model_article->remove_article_full();
 15:         $this->load->view('head');
 16:         $this->load->view('article/list');
 17:         $this->load->view('foot');
 18:     }
 19:     /* Article Edit */
 20:     public function edit($id,$action = ''){
 21:         $uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2);
 22:         if($this->input->get('dellink') !=''){
 23:             $this->load->model('Model_link');
 24:             $this->Model_link->disable_data_link($id,$this->input->get('dellink'));
 25:             header('Location:'.'http://' . $_SERVER['HTTP_HOST'] . $uri_parts[0]);
 26:         }
 27:         if($this->input->get('activeref')!=''){
 28:             $this->load->model('Model_link');
 29:             $this->Model_link->enable_data_link($id,$this->input->get('activeref'));
 30:             header('Location:'.'http://' . $_SERVER['HTTP_HOST'] . $uri_parts[0]);
 31:         }
 32:         
 33:         if($this->input->post('action')!='' && $this->input->post('indexTitle')!=''){
 34:             $index['index_title'] = $this->input->post('indexTitle');
 35:             $index['index_data'] = base64_decode(urldecode($id));
 36:             $this->db->insert('xenon_index',$index);
 37:         }
 38:         
 39:         $id_decrypted = base64_decode(urldecode($id));
 40:         $this->load->model('Model_article');
 41:         $this->load->model('Model_link');
 42:         if($action == 'refresh'){
 43:             $this->Model_article->remove_cache($id);
 44:         }
 45:         $this->Model_article->remove_article_full();
 46:         $ar = $this->Model_article->update($id);
 47:         $data['links'] = $this->Model_link->article_links($id_decrypted);
 48:         $data['references'] = $this->Model_link->article_references($id_decrypted);
 49:         $data['article'] = $this->Model_article->pick($id);
 50:         $data['indexs'] = $this->Model_article->index($id);
 51:         $this->load->view('head',(is_array($ar)?$ar:array()));      
 52:         $this->load->view('article/edit',$data);
 53:         $this->load->view('foot');
 54:     }
 55:     /* Article Popups */
 56:     public function poplist(){
 57:         if($this->input->get('selected')!=''){
 58:             $url = base64_decode(urldecode($this->input->get('selected'))); 
 59:                 
 60:             $this->session->set_flashdata('current_article',$url);
 61:             //echo $this->session->userdata('current_article');exit();
 62:         }
 63:         $this->load->model('Model_article');
 64:         $this->Model_article->remove_article_full();
 65:         $this->load->view('head_pop');
 66:         $this->load->view('article/list-popup');
 67:         $this->load->view('foot_pop');
 68:     }
 69:     
 70:     /* Article Generate Reference */
 71:     public function popreference($id)
 72:     {
 73:         $this->load->model('Model_article');
 74:         $this->load->view('head_pop');      
 75:         $this->load->view('article/reference-update',array('article'=>$this->Model_article->pick($id),'id'=>$id));
 76:         $this->load->view('foot_pop');
 77:     }
 78: 
 79:     /* Article View */
 80:     public function detail($id,$backup_id = ''){
 81:         $this->load->model('Model_article');
 82:         $article = '';
 83:         if($id == 'link'){
 84:             $article = $this->Model_article->pick_link($backup_id);         
 85:         }else{
 86:             $article = $this->Model_article->pick($id);
 87:         }
 88:         if($article->data_body_cache == ''){
 89:             $this->Model_article->build_article_cache($article->data_body_temp,$article->data_id);
 90:             $article = $this->Model_article->pick(urlencode(base64_encode($article->data_id)));
 91:         }
 92:         $this->load->view('head');      
 93:         $this->load->view('article/detail',array('article'=>$article,'indexs'=>$this->Model_article->index($id),'references'=>$this->Model_article->reference($id)));
 94:         $this->load->view('foot');
 95:     }
 96:     /* Link Parser */
 97:     public function core($id){
 98:         $this->load->model('Model_article');
 99:         $this->load->view('head');      
100:         $this->load->view('article/link',array('article'=>$this->Model_article->pick($id),'indexs'=>$this->Model_article->index($id),'references'=>$this->Model_article->reference($id)));
101:         $this->load->view('foot');
102:     }
103:     
104:     /* Cache Creator */
105:     public function cache($action = 'refresh'){
106:         $all_nodes = $this->db->query('select * from xenon_data limit 1000');
107:         foreach($all_nodes->result() as $article){
108:             $ref_count = 0;
109:             $dom = new DOMDocument();
110:             $dom->loadHTML(html_entity_decode(mb_convert_encoding($article->data_body_temp,"HTML-ENTITIES","UTF-8")));
111:             $a_tags = $dom->getElementsByTagName('a');
112:             foreach ($a_tags as $a_tag) {
113:                 $txt = str_replace('&#38;','&amp;',str_replace('’', "'", $a_tag->nodeValue));
114:                 $txt = htmlentities($txt);
115:                 if($txt == 'references'){
116:                     $ref_count = $ref_count + 1;
117:                     $txt = '['.$ref_count.']';
118:                 }
119:                 echo $txt.'<br />';
120:             }
121:             
122:             /*$data_final['data_body_cache'] = substr($dom->saveHTML(),119,-15);
123:             $this->db->where('data_id',$article->data_id);
124:             $this->db->update('xenon_data',$data_final);*/
125:         }
126:     }
127: 
128:     public function links(){
129:         $all_nodes = $this->db->query('select * from xenon_link where data_id = 0;');
130:         foreach($all_nodes->result() as $row){
131:             //print('update xenon_link set data_id='.$row->refe_id.' where link_id = '.$row->link_id.';');
132:             $link = str_replace('%20', ' ', $row->link_href);
133:             if(strpos($link,'JavaScript:XdkPopup')!== FALSE){
134:                 $link = str_replace("JavaScript:XdkPopup('",'',$row->link_href);
135:                 $link = substr($link,0,-2);
136:             }
137:             $this->db->query('update xenon_link set link_href = \''.$link.'\' where link_id = '.$row->link_id);
138:             if($row->link_text == 'references'){
139:                 echo 'reference = '.$link.'<br />';
140:             }else{
141:                 echo $row->link_text.' = '.$link.'<br />';
142:                 
143:             }
144:         }
145:     }
146:     
147:     public function generate_gmreader($start = ''){
148:         if($start!=''){
149:             $start = $start * 500;
150:             $this->load->model('Model_article');
151:             $all_data = $this->db->query("select data_id, data_body_temp from xenon_data limit ".$start.",500");
152:             foreach($all_data->result() as $data_topic){
153:                 $dataTmp =  $data_topic->data_body_temp;
154:                 //echo '<link href="/skin/css/style.css?1378076293" type="text/css" rel="stylesheet" />';
155:                 //echo '<style>.Subheadinghdk,.listhead{font-size:18px;}.hdksubsubheading{font-size:14px;font-weight:bold;}</style>';
156:                 /*$dataTmp = $this->Model_article->build_article_temp_gmreader($data_topic->data_body_temp,$data_topic->data_id);*/
157:                 /*echo */$this->Model_article->build_article_cache_gmreader($dataTmp,$data_topic->data_id);
158:                 //echo $data_topic->data_id.'<br />';
159:             }
160:         }
161:         for($i = 0;$i<12;$i++){
162:             echo '<a href="'.site_url('article/generate_gmreader/'.$i).'">'.($i + 1).'</a>';
163:         }
164:         
165:     }
166:     
167:     public function build_temp($id){
168:         $this->load->model('Model_article');
169:         $all_data = $this->db->select("data_id, data_body")->from("xenon_data")->where("data_id",$id)->get()->row();
170:         $this->Model_article->build_article_temp($all_data->data_body,$all_data->data_id);
171:     }
172:     
173:     public function reverting_data(){
174:         $articles = $this->db->from('xenon_data')->where('data_id',12)->get()->row();
175:         preg_match_all("/<a.*?href=\"([^`]*?)\"([^`]*?)>([^`]*?)<\/a>/",$articles->data_body_cache,$ar);
176:         $a_tag = $ar[0];
177:         $a_href = $ar[1];
178:         $a_other = $ar[2];
179:         $a_title = $ar[3];
180:         
181:         $a_reference_num = array();
182:         $a_reference_link = array();
183:         
184:         
185:     }
186: 
187:     public function clear(){
188:         if($this->cache->file->clean()!==FALSE){
189:             redirect('employee');
190:         }else{
191:             $this->load->view('head');
192:             echo 'Cache deletion failed.';
193:             $this->load->view('foot');
194:         }
195:     }
196:     
197: }
API documentation generated by ApiGen