comparison models/extractapp.php @ 63:3395385476d1 extractapp

bug fixed: popup tag window is closed automatically when saving text file
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Wed, 01 Apr 2015 15:10:35 +0200
parents 3fb9e3884401
children f9ae94a9b041
comparison
equal deleted inserted replaced
62:3fb9e3884401 63:3395385476d1
7 public function Index() { 7 public function Index() {
8 return array("Index Value 1", "Value 2", "Value 3"); 8 return array("Index Value 1", "Value 2", "Value 3");
9 } 9 }
10 10
11 protected $section_id = 0, $data_path, $file_id = 0, $current_fileId=0, 11 protected $section_id = 0, $data_path, $file_id = 0, $current_fileId=0,
12 $branch_id = 0, $user_id = 0, $lg_text = "", $topic, $taglist_infile = "", $book_meta = ""; 12 $branch_id = 0, $user_id = 0, $lg_text = "", $topic, $taglist_infile = "", $book_meta = "",$book_dynasty="";
13 public $messages = array('info'=>"",'error'=>"",'warning'=>"",'debug'=>""); 13 public $messages = array('info'=>"",'error'=>"",'warning'=>"",'debug'=>"");
14 14
15 private function Initialize($_urlvalues) {
16 $this->SetSectionId($_urlvalues);
17
18 }
19 15
20 public function GetTextFromFileId() { // remove $_postdata as input 16 public function GetTextFromFileId() { // remove $_postdata as input
21 /* 17 /*
22 $this->file_id = $_postdata['fileId']; 18 $this->file_id = $_postdata['fileId'];
23 $branch_id = $_postdata['branchId']; 19 $branch_id = $_postdata['branchId'];
50 46
51 $this->lg_text = $lg_text; 47 $this->lg_text = $lg_text;
52 48
53 } 49 }
54 50
51 public function GetBookMetaData($_postdata) {
52 // TODO: get book_meta from $_postdata, depended on LGService
53
54
55 // TODO: set $this->book_meta to an array(book_id,book_name,author,year,pagenumber,dynasty)
56 $book_meta = array();
57 array_push($book_meta, array($this->book_id,$this->book_name,"no_data","no_data","no_data","no_data")); // missing author,year,pagenumber
58
59 $this->book_meta = $book_meta;
60
61 }
62
63
55 public function GetTextFromSectionId() { // remove $_postdata as input 64 public function GetTextFromSectionId() { // remove $_postdata as input
56 /* 65 /*
57 $section_id = $_postdata['sectionId']; 66 $section_id = $_postdata['sectionId'];
58 $this->section_id = $section_id; 67 $this->section_id = $section_id;
59 $this->user_id = $_postdata['userId']; 68 $this->user_id = $_postdata['userId'];
66 // get from URL with file_id 75 // get from URL with file_id
67 // $lg_text_url = $this->get_text_from_sectionId_url.$section_id; 76 // $lg_text_url = $this->get_text_from_sectionId_url.$section_id;
68 $lg_text_url = $this->get_text_from_sectionId_url.$this->section_id; 77 $lg_text_url = $this->get_text_from_sectionId_url.$this->section_id;
69 $lg_text = file_get_contents($lg_text_url); 78 $lg_text = file_get_contents($lg_text_url);
70 79
71 // TODO: get book_meta from $_postdata and set $this->book_meta: book_id,book_name,author,year,pagenumber 80
72 $book_meta = array();
73 array_push($book_meta, array($this->book_id,$this->book_name,"no_data","no_data","no_data")); // missing author,year,pagenumber
74
75 $this->book_meta = $book_meta;
76
77
78 81
79 $stringInput = $lg_text; 82 $stringInput = $lg_text;
80 $stringInput = preg_replace("/<(.*?)>/u", "○", $stringInput); 83 $stringInput = preg_replace("/<(.*?)>/u", "○", $stringInput);
81 $stringInput = preg_replace("/ /u", "○", $stringInput); 84 $stringInput = preg_replace("/ /u", "○", $stringInput);
82 $stringInput = preg_replace("/\n/u", "<br>", $stringInput); 85 $stringInput = preg_replace("/\n/u", "<br>", $stringInput);
86 $this->lg_text = $lg_text; 89 $this->lg_text = $lg_text;
87 } 90 }
88 91
89 public function GetTextFromLocal($_id){ 92 public function GetTextFromLocal($_id){
90 $this->section_id = $_id; 93 $this->section_id = $_id;
91 $this->branch_id = 1; // local test sets branch_id to 1 94 //$this->branch_id = 1; // local test sets branch_id to 1
92 // $this->messages .= "DEBUG: from my local"."<br>";
93 $this->messages['debug'] .= "[Debug] from my local"."<br>"; 95 $this->messages['debug'] .= "[Debug] from my local"."<br>";
94 $this->lg_text = $this->GetSectionContent(); 96 $this->lg_text = $this->GetSectionContent();
95 97
96 } 98 }
97 99
133 } 135 }
134 if ($_postdata['book_meta']) { 136 if ($_postdata['book_meta']) {
135 $this->book_meta = json_decode($_postdata['book_meta']); 137 $this->book_meta = json_decode($_postdata['book_meta']);
136 } 138 }
137 139
138 } 140
139 public function InitData($_postdata) { 141 }
140 $file_id = $_postdata['fileId'];
141 $branch_id = $_postdata['branchId'];
142 $section_id = $_postdata['sectionId'];
143
144 $this->branch_id = $branch_id;
145 $this->file_id = $file_id;
146 $this->user_id = $_postdata['userId'];
147 $this->section_id = $section_id;
148
149 if ($file_id != 0 && $branch_id != 0) {
150 // get from URL with file_id
151 $lg_text_url = $this->get_text_from_fileId_url.$file_id;
152 } else if ($section_id != 0) {
153 // get from URL with section_id
154 $lg_text_url = $this->get_text_from_sectionId_url.$section_id;
155 } else {
156 echo "wrong url!!";
157 return;
158 }
159
160
161 $lg_text = file_get_contents($lg_text_url);
162
163 /*
164 $stringInput = preg_replace("/ /u", "○", $stringInput);
165 $stringInput = preg_replace("/\n/u", "<br>", $stringInput);
166 $stringInput = preg_replace("/【(.*?)】/u", "【<a href=\"review_index_xml_images.php?books_id=".$bookId."&pages=\\1&entry=0\" target=\"_bookImg\">\\1</a>】", $stringInput);
167 */
168
169 // the text is from database
170 $stringInput = $lg_text;
171 $stringInput = preg_replace("/<(.*?)>/u", "○", $stringInput);
172 $stringInput = preg_replace("/ /u", "○", $stringInput);
173 $stringInput = preg_replace("/\n/u", "<br>", $stringInput);
174 $stringInput = preg_replace("/【(.*?)】/u", "【<a href=\"review_index_xml_images.php?books_id=".$bookId."&pages=\\1&entry=0\" target=\"_bookImg\">\\1</a>】", $stringInput);
175 $lg_text = $stringInput;
176
177 $this->lg_text = $lg_text;
178
179
180 }
181
182 142
183 // TODO: comparison not correct 143 // TODO: comparison not correct
184 private function Taglist_infileUpToDate($taglistArray) { 144 private function Taglist_infileUpToDate($taglistArray) {
185 // compare $this->taglist_infile is the same as $taglistArray 145 // compare $this->taglist_infile is the same as $taglistArray
186 $taglist_infile = $this->taglist_infile; 146 $taglist_infile = $this->taglist_infile;
338 $text .= "<id>".$b[0]."</id>\n"; 298 $text .= "<id>".$b[0]."</id>\n";
339 $text .= "<name>".$b[1]."</name>\n"; 299 $text .= "<name>".$b[1]."</name>\n";
340 $text .= "<author>".$b[2]."</author>\n"; 300 $text .= "<author>".$b[2]."</author>\n";
341 $text .= "<year>".$b[3]."</year>\n"; 301 $text .= "<year>".$b[3]."</year>\n";
342 $text .= "<pagenumber>".$b[4]."</pagenumber>\n"; 302 $text .= "<pagenumber>".$b[4]."</pagenumber>\n";
303 $text .= "<dynasty>".$b[5]."</dynasty>\n";
343 $text .= "</book>\n"; 304 $text .= "</book>\n";
344 } 305 }
345 // taglist 306 // taglist
346 $taglist = $this->taglist_infile; 307 $taglist = $this->taglist_infile;
347 foreach ($taglist as $tagitem) { 308 foreach ($taglist as $tagitem) {
551 } 512 }
552 513
553 514
554 // === for export table === 515 // === for export table ===
555 public function ExportTable($postdata) { 516 public function ExportTable($postdata) {
556 // $this->Initialize($urlvalues);
557 517
558 $content = $postdata['content']; 518 $content = $postdata['content'];
559 $topic = $postdata['topic']; 519 $topic = $postdata['topic'];
560 $section_id = $postdata['sectionId']; 520 $section_id = $postdata['sectionId'];
561 521
562 //$section_id = $this->section_id; 522 //$section_id = $this->section_id;
563 523
564
565 // TODO: this should be get from LGService: sectionName, bookId, bookName
566 $sectionName = $postdata['sectionName']; 524 $sectionName = $postdata['sectionName'];
567 $bookId = $postdata['bookId']; 525 $bookId = $postdata['bookId'];
568 $bookName = $postdata['bookName']; 526 $bookName = $postdata['bookName'];
569 527
570 528 // =====
571 // --- replace if get info from LGService
572 /*
573 $section_info = $this->GetSectionInfo();
574
575 $sectionName = $section_info['sectionName'];
576 $bookId = $section_info['bookId'];
577
578 $books_info = $this->GetBooksInfo($bookId);
579 $bookName = $books_info['bookName'];
580 */
581 // =====
582
583 529
584 $outputTableArray = array(); 530 $outputTableArray = array();
585 531
586 //$taglistArray = $this->GetTaglistArray(); 532 //$taglistArray = $this->GetTaglistArray();
587 $taglistArray = $this->GetTaglistByTopicID($topic); 533 $taglistArray = $this->GetTaglistByTopicID($topic);
642 $outputTableArray[$count]["page"] = $pageNow; 588 $outputTableArray[$count]["page"] = $pageNow;
643 $value = preg_replace("/>/u", "&gt;", $value); 589 $value = preg_replace("/>/u", "&gt;", $value);
644 $value = preg_replace("/</u", "&lt;", $value); 590 $value = preg_replace("/</u", "&lt;", $value);
645 $outputTableArray[$count]["full"] = $value; 591 $outputTableArray[$count]["full"] = $value;
646 } 592 }
647 /*
648 echo "<br>"."DEBUG: outputTableArray:"."<br>";
649 var_dump($outputTableArray);
650 */
651 593
652 $topic_tag = $this->GetTopicTag($topic); 594 $topic_tag = $this->GetTopicTag($topic);
653 595
654 foreach ( $outputTableArray as $arrayIndex => $arrayValue ) { 596 foreach ( $outputTableArray as $arrayIndex => $arrayValue ) {
655 // output each row which the topic tag 597 // output each row which the topic tag
703 $taglistArray = array(); 645 $taglistArray = array();
704 646
705 foreach ($result as $row) { 647 foreach ($result as $row) {
706 $taglistArray[$row[0]] = array($row[1], $row[2], $row[3]); 648 $taglistArray[$row[0]] = array($row[1], $row[2], $row[3]);
707 //$taglistArray[$row['id']] = array($row['name'], $row['tag'], $row['color']); 649 //$taglistArray[$row['id']] = array($row['name'], $row['tag'], $row['color']);
708 // TODO: the format is not good, so I use $row[0], $row[1],... This could be changed some time.
709 } 650 }
710 651
711 $topic_tag_name = $this->GetTopicTag($topic_id); 652 $topic_tag_name = $this->GetTopicTag($topic_id);
712 653
713 $query = "SELECT id FROM taglist WHERE taglist.tag='".$topic_tag_name."'"; 654 $query = "SELECT id FROM taglist WHERE taglist.tag='".$topic_tag_name."'";
1127 1068
1128 public function sortFunction($a,$b) { 1069 public function sortFunction($a,$b) {
1129 return strlen($b)-strlen($a); 1070 return strlen($b)-strlen($a);
1130 } 1071 }
1131 1072
1132 // TODO: delete this
1133 private function SetSectionId($_urlvalues) {
1134 // TODO: maybe get user info also
1135 // get book id from url
1136 if ($_urlvalues['id'] != "") {
1137 $section_id = $_urlvalues['id'];
1138 } else {
1139 return json_encode("Error: No section id");
1140 /* ???? */
1141 /*
1142 $get_book_id = $urlvalues['book'];
1143 $get_start = $urlvalues['start'];
1144 $get_end = $urlvalues['end'];
1145 */
1146 }
1147 $this->section_id = $section_id;
1148
1149 }
1150
1151 private function GetSectionId() { 1073 private function GetSectionId() {
1152 1074
1153 if (is_numeric($this->section_id)) { 1075 if (is_numeric($this->section_id)) {
1154 return $this->section_id; 1076 return $this->section_id;
1155 } else { 1077 } else {
1205 1127
1206 // get book meta data from file 1128 // get book meta data from file
1207 $book_meta = $xml->book; 1129 $book_meta = $xml->book;
1208 $book_metaArray = array(); 1130 $book_metaArray = array();
1209 foreach ($book_meta as $row) { 1131 foreach ($book_meta as $row) {
1210 array_push($book_metaArray, array((string)$row->id,(string)$row->name,(string)$row->author,(string)$row->year,(string)$row->pagenumber )); 1132 array_push($book_metaArray, array((string)$row->id,(string)$row->name,(string)$row->author,(string)$row->year,(string)$row->pagenumber,(string)$row->dynasty ));
1211 } 1133 }
1212 if ($book_metaArray) { 1134 if ($book_metaArray) {
1213 $this->book_meta = $book_metaArray; 1135 $this->book_meta = $book_metaArray;
1214 } 1136 }
1215 1137
1241 1163
1242 // if the text is from file system 1164 // if the text is from file system
1243 $stringInput = preg_replace("/ /u", "○", $stringInput); 1165 $stringInput = preg_replace("/ /u", "○", $stringInput);
1244 $stringInput = preg_replace("/\n/u", "<br>", $stringInput); 1166 $stringInput = preg_replace("/\n/u", "<br>", $stringInput);
1245 $stringInput = preg_replace("/【(.*?)】/u", "【<a href=\"review_index_xml_images.php?books_id=".$bookId."&pages=\\1&entry=0\" target=\"_bookImg\">\\1</a>】", $stringInput); 1167 $stringInput = preg_replace("/【(.*?)】/u", "【<a href=\"review_index_xml_images.php?books_id=".$bookId."&pages=\\1&entry=0\" target=\"_bookImg\">\\1</a>】", $stringInput);
1168
1169 $this->branch_id = 1; // testing at local
1170
1246 } else { 1171 } else {
1247 $query = sprintf("SELECT `content`, `line`, `books_id` FROM `contents` WHERE `books_id`=\"%s\" AND `line`>=%d AND `line`<=%d", $bookId, $startPage, $endPage); 1172 $query = sprintf("SELECT `content`, `line`, `books_id` FROM `contents` WHERE `books_id`=\"%s\" AND `line`>=%d AND `line`<=%d", $bookId, $startPage, $endPage);
1248 $result = mysql_query($query); 1173 $result = mysql_query($query);
1249 if (!$result) { 1174 if (!$result) {
1250 return json_encode("Failed during selecting content table."); 1175 return json_encode("Failed during selecting content table.");
1263 1188
1264 // get book_meta from books table 1189 // get book_meta from books table
1265 $book_meta = array(); 1190 $book_meta = array();
1266 $books_result = $this->GetBooksByID($bookId); 1191 $books_result = $this->GetBooksByID($bookId);
1267 while ($row = mysql_fetch_assoc($books_result)) { 1192 while ($row = mysql_fetch_assoc($books_result)) {
1268 array_push($book_meta, array($row['id'],$row['name'],$row['author'],(string)$row['start_year'],(string)$row['line'])); 1193 array_push($book_meta, array($row['id'],$row['name'],$row['author'],(string)$row['start_year'],(string)$row['line'],(string)$row['dynasty']));
1269 // use 'start_year' as year, 'line' is pagenumber 1194 // use 'start_year' as year, 'line' is pagenumber
1270 } 1195 }
1271 1196
1272 $this->book_meta = $book_meta; 1197 $this->book_meta = $book_meta;
1273 1198