Mercurial > hg > extraction-interface
comparison models/extractapp.php @ 67:3ada9334ebfc extractapp
New: check taglist is deprecated or not
| author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
|---|---|
| date | Tue, 07 Apr 2015 14:45:31 +0200 |
| parents | e71a437ae49f |
| children | edb8a2e8ce84 |
comparison
equal
deleted
inserted
replaced
| 66:e71a437ae49f | 67:3ada9334ebfc |
|---|---|
| 46 | 46 |
| 47 $this->lg_text = $lg_text; | 47 $this->lg_text = $lg_text; |
| 48 | 48 |
| 49 } | 49 } |
| 50 | 50 |
| 51 public function GetBookMetaData($_postdata) { | 51 |
| 52 // TODO: get book_meta from $_postdata, depended on LGService | 52 |
| 53 | 53 |
| 54 public function GetBookMetaDataBySectionId() { | |
| 55 | |
| 56 // TODO: get book_meta from $$this->get_section_metadata_by_sectionId_url ... | |
| 57 $section_meta_url = $this->get_section_metadata_by_sectionId_url.$this->section_id; | |
| 58 $section_meta = file_get_contents($section_meta_url); | |
| 59 | |
| 54 | 60 |
| 55 // TODO: set $this->book_meta to an array(book_id,book_name,author,year,pagenumber,dynasty) | 61 // TODO: set $this->book_meta to an array(book_id,book_name,author,year,pagenumber,dynasty) |
| 56 $book_meta = array(); | 62 $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 | 63 array_push($book_meta, array($this->book_id,$this->book_name,"no_data","no_data","no_data","no_data")); // missing author,year,pagenumber |
| 58 | 64 |
| 138 } | 144 } |
| 139 | 145 |
| 140 | 146 |
| 141 } | 147 } |
| 142 | 148 |
| 143 // TODO: comparison not correct | 149 |
| 144 private function Taglist_infileUpToDate($taglistArray) { | 150 |
| 145 // compare $this->taglist_infile is the same as $taglistArray | 151 private function TaglistSubsetIn($list1, $list2) { // $l1 is a subset of $l2 or not |
| 146 $taglist_infile = $this->taglist_infile; | 152 // l1 and l2: array( $row['id'], $row['name'], $row['tag'], $row['color'] ) |
| 147 if (count($taglist_infile) != count($taglistArray)) { | 153 $cnt_list1 = count($list1); |
| 154 $cnt_list2 = count($list2); | |
| 155 | |
| 156 if ($cnt_list1 > $cnt_list2) { | |
| 148 return false; | 157 return false; |
| 149 } | 158 } |
| 150 | 159 foreach ($list1 as $v1) { |
| 151 foreach ($taglistArray as $row_indb) { | |
| 152 $cnt = 0; | 160 $cnt = 0; |
| 153 foreach ($taglist_infile as $row) { | 161 foreach ($list2 as $v2) { |
| 154 //$taglistArray: array( $row['id'], $row['name'], $row['tag'], $row['color'] ) | 162 $num_field = count($v2); |
| 155 if ($row[0] == $row_indb[0] && $row[1] == $row_indb[1] && $row[2] == $row_indb[2] && $row[3] == $row_indb[3]) { | 163 $matched = true; |
| 156 | 164 for ($i=0; $i < $num_field; $i++) { |
| 165 if ($v1[$i] != $v2[$i]) { | |
| 166 $matched = false; | |
| 167 break; | |
| 168 } | |
| 169 } | |
| 170 | |
| 171 if (!$matched) { | |
| 172 // not match with this v2 | |
| 173 $cnt += 1; | |
| 157 } else { | 174 } else { |
| 158 $cnt ++; | 175 break; |
| 159 } | 176 } |
| 160 } | 177 |
| 161 if ($cnt == count($row)) { | 178 } |
| 162 return false; | 179 if ($cnt == $cnt_list2) { |
| 180 return false; | |
| 163 } | 181 } |
| 164 } | 182 } |
| 165 return true; | 183 return true; |
| 166 } | 184 |
| 185 } | |
| 186 | |
| 167 // === for tagging === | 187 // === for tagging === |
| 168 public function StartTagging() { | 188 public function StartTagging() { |
| 169 | 189 |
| 170 $section_id = $this->section_id; | 190 $section_id = $this->section_id; |
| 171 $stringInput = $this->lg_text; | 191 $stringInput = $this->lg_text; |
| 174 | 194 |
| 175 //$taglistArray = $this->GetTaglistArray(); | 195 //$taglistArray = $this->GetTaglistArray(); |
| 176 //for GetTaglistByTopicID: | 196 //for GetTaglistByTopicID: |
| 177 $taglistArray = $this->GetTaglistByTopicID($this->GetTopic()); | 197 $taglistArray = $this->GetTaglistByTopicID($this->GetTopic()); |
| 178 | 198 |
| 179 $data['taglist_infile'] = $this->taglist_infile; | 199 // $this->taglist_infile is set (1) from file or (2) from _postdata['taglistArray'] which comes from frontend that user decided |
| 180 // TODO: check if taglist_infile is up-to-date | 200 // $this->taglist_infile is the most up-to-date taglist decided by user. Should be written into file. |
| 181 /* | 201 if( $this->TaglistSubsetIn($this->taglist_infile, $taglistArray) ) { // TaglistSubsetIn($l1,$l2): $l1 is a subset of $l2 or not |
| 182 if ( !$this->Taglist_infileUpToDate($taglistArray)) { | 202 $this->taglist_infile = ""; |
| 183 $data['taglist_infile'] = $this->taglist_infile; | 203 } |
| 184 } else { | 204 $data['taglist_infile'] = $this->taglist_infile; // if taglist_infile == "" means taglist in file is up-to-date (will use taglist in db), otherwise means the taglist in file |
| 185 $data['taglist_infile'] = ""; | 205 |
| 186 } | |
| 187 */ | |
| 188 | 206 |
| 189 // book_meta | 207 // book_meta |
| 190 $data['book_meta'] = $this->book_meta; | 208 $data['book_meta'] = $this->book_meta; |
| 191 | 209 |
| 192 // topic list | 210 // topic list |
| 207 | 225 |
| 208 $data['info'] = array('file_id'=>$this->file_id, 'user_id'=>$this->user_id, | 226 $data['info'] = array('file_id'=>$this->file_id, 'user_id'=>$this->user_id, |
| 209 'branch_id'=>$this->branch_id, 'section_id'=>$this->section_id, 'book_id'=>$this->book_id, | 227 'branch_id'=>$this->branch_id, 'section_id'=>$this->section_id, 'book_id'=>$this->book_id, |
| 210 'book_name'=>$this->book_name, 'section_name'=>$this->section_name, | 228 'book_name'=>$this->book_name, 'section_name'=>$this->section_name, |
| 211 'current_fileId'=>$this->current_fileId); | 229 'current_fileId'=>$this->current_fileId); |
| 212 //'current_fileId'=>$this->file_id); | |
| 213 //'current_fileId'=>'123'); | |
| 214 | 230 |
| 215 $this->messages['debug'] .= "[Debug] "; | 231 $this->messages['debug'] .= "[Debug] "; |
| 216 $this->messages['debug'] .= "file_id=".$this->file_id.", section_id=".$this->section_id; | 232 $this->messages['debug'] .= "file_id=".$this->file_id.", section_id=".$this->section_id; |
| 217 $this->messages['debug'] .= ", user_id=".$this->user_id.", branch_id=".$this->branch_id.", topic_id=".$this->topic; | 233 $this->messages['debug'] .= ", user_id=".$this->user_id.", branch_id=".$this->branch_id.", topic_id=".$this->topic; |
| 218 $this->messages['debug'] .= ", book_id=".$this->book_id.", book_name=".$this->book_name.", section_name=".$this->section_name; | 234 $this->messages['debug'] .= ", book_id=".$this->book_id.", book_name=".$this->book_name.", section_name=".$this->section_name; |
| 668 | 684 |
| 669 return $data; | 685 return $data; |
| 670 | 686 |
| 671 } | 687 } |
| 672 | 688 |
| 673 private function _GetTag($_postdata) { | 689 private function GetTag($_postdata) { |
| 674 if (get_magic_quotes_gpc()) { | 690 if (get_magic_quotes_gpc()) { |
| 675 $id = stripslashes($_postdata['id']); | 691 $id = stripslashes($_postdata['id']); |
| 676 $name = stripslashes($_postdata['name']); | 692 $name = stripslashes($_postdata['name']); |
| 677 $tag = stripslashes($_postdata['tag']); | 693 $tag = stripslashes($_postdata['tag']); |
| 678 $color = stripslashes($_postdata['color']); | 694 $color = stripslashes($_postdata['color']); |
| 685 return array($id, $name, $tag, $color); | 701 return array($id, $name, $tag, $color); |
| 686 } | 702 } |
| 687 | 703 |
| 688 public function NewTagElement($postdata) { | 704 public function NewTagElement($postdata) { |
| 689 if ($postdata['id']){ | 705 if ($postdata['id']){ |
| 690 list($id, $name, $tag, $color) = $this->_GetTag($postdata); | 706 list($id, $name, $tag, $color) = $this->GetTag($postdata); |
| 691 | 707 |
| 692 $query1 = sprintf("INSERT INTO `taglist` (`id`, `name`, `tag`, `color`, `systemName`) VALUES (%s, %s, %s, %s, %s)", | 708 $query1 = sprintf("INSERT INTO `taglist` (`id`, `name`, `tag`, `color`, `systemName`) VALUES (%s, %s, %s, %s, %s)", |
| 693 $this->GetSQLValueString($id, "int"), | 709 $this->GetSQLValueString($id, "int"), |
| 694 $this->GetSQLValueString($name, "text"), | 710 $this->GetSQLValueString($name, "text"), |
| 695 $this->GetSQLValueString($tag, "text"), | 711 $this->GetSQLValueString($tag, "text"), |
| 711 | 727 |
| 712 } | 728 } |
| 713 | 729 |
| 714 public function SaveTagElement($postdata) { | 730 public function SaveTagElement($postdata) { |
| 715 if ($postdata['id']){ | 731 if ($postdata['id']){ |
| 716 list($id, $name, $tag, $color) = $this->_GetTag($postdata); | 732 list($id, $name, $tag, $color) = $this->GetTag($postdata); |
| 717 | 733 |
| 718 $query = sprintf("UPDATE taglist SET `name`=%s, `tag`=%s, `color`=%s WHERE `id`=%s", | 734 $query = sprintf("UPDATE taglist SET `name`=%s, `tag`=%s, `color`=%s WHERE `id`=%s", |
| 719 $this->GetSQLValueString($name, "text"), | 735 $this->GetSQLValueString($name, "text"), |
| 720 $this->GetSQLValueString($tag, "text"), | 736 $this->GetSQLValueString($tag, "text"), |
| 721 $this->GetSQLValueString($color, "text"), | 737 $this->GetSQLValueString($color, "text"), |
