viewgit/inc/functions.php:22 Function utf8_encode() is deprecated [8192]
diff --git a/src/controllers/Controller.php b/src/controllers/Controller.php index b56040f04..a1124ddd0 100755 --- a/src/controllers/Controller.php +++ b/src/controllers/Controller.php @@ -1023,4 +1023,46 @@ abstract class Controller $fuzzy_value = $i; return $fuzzy_value; } + /** + * Used to store in a session which media list items have been viewed so + * we can put an indicator by them when the media list is rendered + * + * @param int $page_id the id of page with media list + * @param string $sub_path the resource folder on that page + * @param string $media_name item to store indiicator into session for + */ + public function recordViewSession($page_id, $sub_path, $media_name) + { + $hash_id = L\crawlHash($page_id . $media_name . $sub_path); + if (empty($_SESSION['USER_ID']) || $_SESSION['USER_ID'] == + C\PUBLIC_USER_ID || !empty($_REQUEST['t'])) { + return; + } + if (empty($_SESSION['seen_media']) || + !is_array($_SESSION['seen_media'])) { + $_SESSION['seen_media'] = []; + } + if (in_array($hash_id, $_SESSION['seen_media'])) { + if (end($_SESSION['seen_media']) == $hash_id) { + // this item was already the most recently viewed + return; + } + $_SESSION['seen_media'] = array_diff($_SESSION['seen_media'], + [$hash_id]); + } + array_push($_SESSION['seen_media'], $hash_id); + $keep_deleting = true; + while ($keep_deleting) { + if (strlen(serialize($_SESSION)) >= C\MAX_USER_SESSION_SIZE) { + array_shift($_SESSION['seen_media']); + } + if (count($_SESSION['seen_media']) <= 0) { + $keep_deleting = false; + } + if ($this->model("user")->setUserSession( + $_SESSION['USER_ID'], $_SESSION)) { + $keep_deleting = false; + } + } } +} diff --git a/src/controllers/ResourceController.php b/src/controllers/ResourceController.php index 91004c8cb..32c7d90bb 100644 --- a/src/controllers/ResourceController.php +++ b/src/controllers/ResourceController.php @@ -268,48 +268,6 @@ class ResourceController extends Controller implements CrawlConstants } return $base_dir; } - /** - * Used to store in a session which media list items have been viewed so - * we can put an indicator by them when the media list is rendered - * - * @param int $page_id the id of page with media list - * @param string $sub_path the resource folder on that page - * @param string $media_name item to store indiicator into session for - */ - public function recordViewSession($page_id, $sub_path, $media_name) - { - $hash_id = L\crawlHash($page_id . $media_name . $sub_path); - if (empty($_SESSION['USER_ID']) || $_SESSION['USER_ID'] == - C\PUBLIC_USER_ID || !empty($_REQUEST['t'])) { - return; - } - if (empty($_SESSION['seen_media']) || - !is_array($_SESSION['seen_media'])) { - $_SESSION['seen_media'] = []; - } - if (in_array($hash_id, $_SESSION['seen_media'])) { - if (end($_SESSION['seen_media']) == $hash_id) { - // this item was already the most recently viewed - return; - } - $_SESSION['seen_media'] = array_diff($_SESSION['seen_media'], - [$hash_id]); - } - array_push($_SESSION['seen_media'], $hash_id); - $keep_deleting = true; - while ($keep_deleting) { - if (strlen(serialize($_SESSION)) >= C\MAX_USER_SESSION_SIZE) { - array_shift($_SESSION['seen_media']); - } - if (count($_SESSION['seen_media']) <= 0) { - $keep_deleting = false; - } - if ($this->model("user")->setUserSession( - $_SESSION['USER_ID'], $_SESSION)) { - $keep_deleting = false; - } - } - } /** * Code to handle HTTP range requests of resources. This allows * HTTP pseudo-streaming of video. This code was inspired by: diff --git a/src/controllers/components/SocialComponent.php b/src/controllers/components/SocialComponent.php index 3316356d3..d80ed8a2e 100644 --- a/src/controllers/components/SocialComponent.php +++ b/src/controllers/components/SocialComponent.php @@ -2859,7 +2859,7 @@ class SocialComponent extends Component implements CrawlConstants $group_model = $parent->model("group"); if (!empty($_REQUEST['clear']) && !empty($_SESSION['seen_media']) && is_array($_SESSION['seen_media'])) { - $media_name = $parent->clean($_REQUEST['clear'], 'string'); + $media_name = $parent->clean($_REQUEST['clear'], 'file_name'); $hash_id = L\crawlHash($data["PAGE_ID"]. $media_name . $sub_path); if (in_array($hash_id, $_SESSION['seen_media'])) { $_SESSION['seen_media'] = array_diff($_SESSION['seen_media'], @@ -3198,7 +3198,6 @@ EOD; " } ". " wiki.scrollTop = $scroll_top;" . "}"; - } $data["MODE"] = "edit"; $page_info = $group_model->getPageInfoByName($group_id, @@ -3401,7 +3400,7 @@ EOD; } if (isset($_REQUEST['delete'])) { $resource_name = $parent->clean($_REQUEST['delete'], - "string"); + "file_name"); $upload_allowed = false; if (isset($page_info['ID']) && $group_model->deleteResource($resource_name, @@ -3574,10 +3573,12 @@ EOD; */ public function mediaWiki(&$data, $group_id, $page_id, $sub_path="") { - if (!isset($page_id) || !isset($_REQUEST['n'])) { return; } + if (!isset($page_id) || !isset($_REQUEST['n'])) { + return; + } $parent = $this->parent; $group_model = $parent->model("group"); - $media_name = $parent->clean($_REQUEST['n'], "string"); + $media_name = $parent->clean($_REQUEST['n'], "file_name"); $page_info = $group_model->getPageInfoByPageId($page_id); $data["DISCUSS_THREAD"] = $page_info["DISCUSS_THREAD"]; $data['SCRIPT'] = (empty($data['SCRIPT'])) ? "" : $data['SCRIPT']; @@ -3634,8 +3635,8 @@ EOD; $page_string = ""; $data['URL_PREFIX'] = $url_prefix; if (!empty($prev_name)) { - $data['PREV_LINK'] = "$url_prefix&n=".urlencode($prev_name); - $prev_link = html_entity_decode($data['PREV_LINK']); + $data['PREV_LINK'] = "$url_prefix&n=" . urlencode($prev_name); + $prev_link = $data['PREV_LINK']; if (!in_array($mime_type, ["application/epub+zip", "application/pdf", 'video/mp4', 'video/m4v'])) { $data['SCRIPT'] .= 'leftSwipe(document, function(evt) {'. @@ -3643,9 +3644,9 @@ EOD; } } if (!empty($next_name)) { - $data['NEXT_LINK'] = "$url_prefix&n=$next_name"; + $data['NEXT_LINK'] = "$url_prefix&n=" . urlencode($next_name); $data['NEXT_INDEX'] = $i+1; - $next_link = html_entity_decode($data['NEXT_LINK']); + $next_link = $data['NEXT_LINK']; if (!in_array($mime_type,["application/epub+zip", "application/pdf", 'video/mp4', 'video/m4v'])) { $data['SCRIPT'] .= 'rightSwipe(document, function(evt) {'. @@ -3660,9 +3661,15 @@ EOD; $page_string .= "((resource:$media_name|$file_name))"; } $page_string .= "</div>"; + $include_charts_and_spreadsheets = ($mime_type == 'text/csv') ? + true : false; $data["PAGE"] = $group_model->insertResourcesParsePage( $group_id, $page_id, $data['CURRENT_LOCALE_TAG'], - $page_string, $csrf_token, $data['CONTROLLER']); + $page_string, $csrf_token, $data['CONTROLLER'], + $include_charts_and_spreadsheets); + if (substr($mime_type, 0, 4) == 'text') { + $this->parent->recordViewSession($page_id, $sub_path, $media_name); + } if ($mime_type == "application/epub+zip") { $this->addEpubMediaScripts($file_name, $data); } else if ($mime_type == "application/pdf") { diff --git a/src/executables/Fetcher.php b/src/executables/Fetcher.php index 98cf7dc8d..fbfa588a5 100755 --- a/src/executables/Fetcher.php +++ b/src/executables/Fetcher.php @@ -1112,6 +1112,11 @@ class Fetcher implements CrawlConstants } } L\crawlLog("End Name Server Check"); + if ($time_change) { + L\crawlLog("Crawl time has changed!"); + } else { + L\crawlLog("Crawl time stayed same!"); + } return $time_change; } /** diff --git a/src/models/CrawlModel.php b/src/models/CrawlModel.php index b51447876..a9e7058fb 100755 --- a/src/models/CrawlModel.php +++ b/src/models/CrawlModel.php @@ -825,7 +825,7 @@ EOT; $info['DESCRIPTION'] = $mix['NAME']; $info['IS_MIX'] = true; } else { - if ($machine_urls != null && + if ($machine_urls != null && is_array($machine_urls) && !$this->isSingleLocalhost($machine_urls, $timestamp)) { $cache_file = C\CRAWL_DIR . "/cache/" . self::network_base_name. $timestamp . ".txt"; diff --git a/src/models/GroupModel.php b/src/models/GroupModel.php index 4db52978e..b9fdd1b0f 100644 --- a/src/models/GroupModel.php +++ b/src/models/GroupModel.php @@ -1876,7 +1876,6 @@ class GroupModel extends Model implements MediaConstants data uri's*/ } else { $current_folder = realpath($current_folder); - $resource_name = html_entity_decode($resource_name, ENT_QUOTES); $file_name = (empty($sub_path)) ? "$current_folder/$resource_name" : "$current_folder/$sub_path/$resource_name"; diff --git a/src/models/ParallelModel.php b/src/models/ParallelModel.php index 41eb34dba..f2db25f44 100755 --- a/src/models/ParallelModel.php +++ b/src/models/ParallelModel.php @@ -457,7 +457,10 @@ class ParallelModel extends Model public function execMachines($command, $machine_urls, $arg = null, $num_machines = 0, $send_specs = false) { - if ($num_machines == 0) { + if (empty($machine_urls) || !is_array($machine_urls)) { + return []; + } + if ($num_machines == 0 && is_array($machine_urls)) { $num_machines = count($machine_urls); } $time = time();