public function DownloadMedia() { $pn_comment_id = $this->request->getParameter('comment_id', pString); $ps_field = $this->request->getParameter('field', pString); if (!$ps_field || !in_array($ps_field, array("media1", "media2", "media3", "media4"))) { $ps_field = "media1"; } $ps_mode = $this->request->getParameter('mode', pString); $ps_version = $this->request->getParameter('version', pString); $t_item_comment = new ca_item_comments($pn_comment_id); $va_versions = $t_item_comment->getMediaVersions($ps_field); if (!in_array($ps_version, $va_versions)) { $ps_version = $va_versions[0]; } if (!$t_item_comment->getMediaTag($ps_field, $ps_version)) { # --- redirect based on mode switch ($ps_mode) { case "list": $this->ListUnmoderated(); break; # ----------------------- # ----------------------- case "search": $this->Index(); break; # ----------------------- # ----------------------- case "dashboard": $this->response->setRedirect(caNavUrl($this->request, "", "Dashboard", "Index")); break; # ----------------------- } } else { $this->view->setVar('version_path', $t_item_comment->getMediaPath($ps_field, $ps_version)); $va_info = $t_item_comment->getMediaInfo($ps_field); $va_version_info = $t_item_comment->getMediaInfo($ps_field, $ps_version); if ($va_info['ORIGINAL_FILENAME']) { if ($ps_version == 'original') { if (!preg_match('!' . $va_version_info['EXTENSION'] . '$!i', $va_info['ORIGINAL_FILENAME'])) { $va_info['ORIGINAL_FILENAME'] .= '.' . $va_version_info['EXTENSION']; } $this->view->setVar('version_download_name', $va_info['ORIGINAL_FILENAME']); } else { $va_tmp = explode('.', $va_info['ORIGINAL_FILENAME']); if (sizeof($va_tmp) > 1) { array_pop($va_tmp); } $this->view->setVar('version_download_name', join('_', $va_tmp) . '.' . $va_version_info['EXTENSION']); } } else { $this->view->setVar('version_download_name', 'comment_media_' . $pn_comment_id . '_' . $ps_version . '.' . $va_version_info['EXTENSION']); } return $this->render('comment_download_binary.php'); } }