public function pages() { $id = $this->request->data['volume_number']; $volume_number = $id; $url = CWMG_VOLUMES_PATH . "\\v" . str_pad($id, 3, "0", STR_PAD_LEFT) . "-" . $this->roman($id) . "\\TXT"; $count = Pages::count(array('volume_number' => $id)); $numeric_vol = str_pad($id, 3, '0', STR_PAD_LEFT); $roman_vol = $this->roman($id); if ($count == 0) { $sortorder = 0; if (!empty($id)) { if ($handle = opendir($url)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { if (stristr($entry, "-B-")) { $is_roman = "1"; } else { $is_roman = "0"; } $page = str_replace(".txt", "", $entry); $page = str_replace("v" . $numeric_vol . "-" . $roman_vol, "", $page); $page = str_replace("-A-", "", $page); $page = str_replace("-B-", "", $page); $page = str_replace("-C-", "", $page); $page = str_replace("-D-", "", $page); $filename = str_replace(".txt", "", $entry); // echo "$page\n"; $contents = file_get_contents($url . "\\" . $entry); $data = array('volume_number' => $id, 'type.id' => '', 'type.no' => null, 'type.name' => null, 'description' => $this->clean_hex(str_replace('\\•', '', strip_tags($contents, '<p><i><ol><li><ul>'))), 'page_no' => $page, 'is_roman' => $is_roman, 'sort_order' => $sortorder + 1, 'filename' => $filename, 'updated' => "Y", 'updated_date' => gmdate('Y-m-d'), 'ip' => $_SERVER['REMOTE_ADDR']); $new_page = Pages::create($data)->save(); $newid = $pages->_id; // Import the file in fs.files $pdfurl = CWMG_VOLUMES_PATH . "\\v" . str_pad($id, 3, "0", STR_PAD_LEFT) . "-" . $this->roman($id) . "\\PDF\\"; $pdffilename = $filename . ".pdf"; $cmd = '"E:\\MongoDB\\bin\\Mongofiles.exe" -d CWMG put ' . $pdfurl . $pdffilename; // exec($cmd); // rename the file in fs.files $file = Files::create(); $data = array('filename' => $filename . ".pdf"); $dataFS = Files::find('all', array('conditions' => array('filename' => $pdfurl . $pdffilename)))->save($data); $sortorder++; } } } closedir($handle); } } else { $sortorder = 0; if ($handle = opendir($url)) { while (false !== ($entry = readdir($handle))) { $sortorder++; if ($entry != "." && $entry != "..") { if (stristr($entry, "-B-")) { $is_roman = "1"; } else { $is_roman = "0"; } $page = str_replace(".txt", "", $entry); $page = str_replace("v" . $numeric_vol . "-" . $roman_vol, "", $page); $page = str_replace("-A-", "", $page); $page = str_replace("-B-", "", $page); $page = str_replace("-C-", "", $page); $page = str_replace("-D-", "", $page); $filename = str_replace(".txt", "", $entry); $contents = file_get_contents($url . "\\" . $entry); $conditions = array('filename' => $filename); $page_id = Pages::find(array('fields' => '_id'), array('conditions' => array('filename' => $filename))); $data = array('description' => $this->clean_hex(str_replace('\\•', '', strip_tags($contents, '<p><i><ol><li><ul>'))), 'ip' => $_SERVER['REMOTE_ADDR']); $conditions = array('_id' => $page_id['_id']); // $new_page = Pages::update($data, $conditions); Pages::find(array('fields' => '_id'), array('conditions' => array('filename' => $filename)))->save($data); // print_r("volume_number"); } } closedir($handle); } } $count = Pages::count(array('conditions' => array('volume_number' => $id, 'type.id' => ''))); return compact('count', 'numeric_vol', 'roman_vol', 'volume_number'); }