PageRenderTime 56ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 1ms

/wordpress/wp-content/plugins/podpress/podpress_admin_class.php

https://github.com/bill742/verbalbrew
PHP | 1894 lines | 1716 code | 119 blank | 59 comment | 554 complexity | 810b719e166281858d41ab21b423f9da MD5 | raw file
Possible License(s): BSD-3-Clause, GPL-3.0, AGPL-1.0, LGPL-2.1, GPL-2.0

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. /*
  3. License:
  4. ==============================================================================
  5. Copyright 2006 Dan Kuykendall (email : dan@kuykendall.org)
  6. This program is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2 of the License, or
  9. (at your option) any later version.
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. GNU General Public License for more details.
  14. You should have received a copy of the GNU General Public License
  15. along with this program; if not, write to the Free Software
  16. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-107 USA
  17. */
  18. class podPressAdmin_class extends podPress_class
  19. {
  20. function podPressAdmin_class() {
  21. parent::cleanup_itunes_keywords();
  22. $this->podPress_class();
  23. return;
  24. }
  25. /*************************************************************/
  26. /* Functions for editing and saving posts */
  27. /*************************************************************/
  28. function page_form() {
  29. return $this->post_form('page');
  30. }
  31. function post_form($entryType = 'post') {
  32. if(!is_object($GLOBALS['post']) && isset($GLOBALS['post_cache'][$GLOBALS['post']])) {
  33. $post = $GLOBALS['post_cache'][$GLOBALS['post']];
  34. } else {
  35. $post = $GLOBALS['post'];
  36. }
  37. $post = $this->addPostData($post, true);
  38. if(($_GET['action'] == 'edit')) {
  39. $post_id = $_GET['post'];
  40. if(!is_array($post->podPressMedia)) {
  41. $post->podPressMedia = array();
  42. }
  43. }
  44. $files = array();
  45. $mediaFilePath = stripslashes($this->settings['mediaFilePath']);
  46. if(@is_dir($mediaFilePath)) {
  47. $dh = opendir($mediaFilePath);
  48. while (false !== ($filename = readdir($dh))) {
  49. if($filename != '.' && $filename != '..' && !is_dir($mediaFilePath.'/'.$filename) && !in_array(podPress_getFileExt($filename), array('php', 'html'))) {
  50. $files[] = $filename;
  51. }
  52. }
  53. natcasesort($files);
  54. }
  55. if($this->settings['enablePodangoIntegration']) {
  56. if(!empty($post->podPressPostSpecific['PodangoEpisodeID'])) {
  57. if(empty($post->podPressPostSpecific['PodangoMediaFileID'])) {
  58. $x = $this->podangoapi->GetEpisode($post->podPressPostSpecific['PodangoEpisodeID']);
  59. $post->podPressPostSpecific['PodangoMediaFileID'] = $x['MediaFileId'];
  60. unset($x);
  61. }
  62. $podangoMediaFiles = $this->podangoapi->GetMediaFile($post->podPressPostSpecific['PodangoMediaFileID']);
  63. } else {
  64. $podangoMediaFiles = $this->podangoapi->GetMediaFiles();
  65. }
  66. }
  67. //echo '<script type="text/javascript" src="'.podPress_url().'js/podpress_admin_postedit.js"></script>'."\n";
  68. echo '<script type="text/javascript">'."\n";
  69. echo "var podPressMaxMediaFiles = ".$this->settings['maxMediaFiles'].";\n";
  70. $newMediaDefaults = array();
  71. echo "var newMediaDefaults = new Array();\n";
  72. $newMediaDefaults['URI'] = '';
  73. echo "newMediaDefaults['URI'] = '".$newMediaDefaults['URI']."';\n";
  74. $newMediaDefaults['title'] = '';
  75. echo "newMediaDefaults['title'] = '".$newMediaDefaults['title']."';\n";
  76. $newMediaDefaults['type'] = 'audio_mp3';
  77. echo "newMediaDefaults['type'] = '".$newMediaDefaults['type']."';\n";
  78. $newMediaDefaults['size'] = '';
  79. echo "newMediaDefaults['size'] = '".$newMediaDefaults['size']."';\n";
  80. $newMediaDefaults['duration'] = '';
  81. echo "newMediaDefaults['duration'] = '".$newMediaDefaults['duration']."';\n";
  82. $newMediaDefaults['dimensionW'] = '320';
  83. echo "newMediaDefaults['dimensionW'] = '".$newMediaDefaults['dimensionW']."';\n";
  84. $newMediaDefaults['dimensionH'] = '240';
  85. echo "newMediaDefaults['dimensionH'] = '".$newMediaDefaults['dimensionH']."';\n";
  86. $newMediaDefaults['previewImage'] = podPress_url().'images/vpreview_center.png';
  87. echo "newMediaDefaults['previewImage'] = '".$newMediaDefaults['previewImage']."';\n";
  88. $newMediaDefaults['rss'] = 'false';
  89. echo "newMediaDefaults['rss'] = ".$newMediaDefaults['rss'].";\n";
  90. $newMediaDefaults['atom'] = 'true';
  91. echo "newMediaDefaults['atom'] = ".$newMediaDefaults['atom'].";\n";
  92. $newMediaDefaults['feedonly'] = 'true';
  93. echo "newMediaDefaults['feedonly'] = ".$newMediaDefaults['feedonly'].";\n";
  94. $newMediaDefaults['disablePlayer'] = 'false';
  95. echo "newMediaDefaults['disablePlayer'] = ".$newMediaDefaults['disablePlayer'].";\n";
  96. $newMediaDefaults['disablePreview'] = 'false';
  97. echo "newMediaDefaults['disablePreview'] = ".$newMediaDefaults['disablePreview'].";\n";
  98. $newMediaDefaults['content_level'] = 'free';
  99. echo "newMediaDefaults['content_level'] = '".$newMediaDefaults['content_level']."';\n";
  100. $newMediaDefaults['showme'] = 'false';
  101. echo "newMediaDefaults['showme'] = ".$newMediaDefaults['showme'].";\n";
  102. if(empty($post->podPressMedia)) {
  103. $num = 0;
  104. } else {
  105. $num = count($post->podPressMedia);
  106. }
  107. while ($num < $this->settings['maxMediaFiles']) {
  108. $post->podPressMedia[$num] = $newMediaDefaults;
  109. $num++;
  110. }
  111. $num = 0;
  112. while ($num < $this->settings['maxMediaFiles']) {
  113. if(!isset($post->podPressMedia[$num]['showme'])) {
  114. $post->podPressMedia[$num]['showme'] = 'true';
  115. }
  116. if($post->podPressMedia[$num]['showme'] == 'false') {
  117. $num++;
  118. continue;
  119. }
  120. if($this->settings['enablePodangoIntegration']) {
  121. if($podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['Filename'] == basename($post->podPressMedia[$num]['URI'])) {
  122. $post->podPressMedia[$num]['URI'] = 'Podango:'.$podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['Podcast'].':'.$podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['ID'].':'.$podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['EpisodeID'].':'.$podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['Filename'];
  123. }
  124. }
  125. if($post->podPressMedia[$num]['rss'] == 'on') {
  126. $post->podPressMedia[$num]['rss'] = 'true';
  127. } else {
  128. $post->podPressMedia[$num]['rss'] = 'false';
  129. }
  130. if($post->podPressMedia[$num]['atom'] == 'on') {
  131. $post->podPressMedia[$num]['atom'] = 'true';
  132. } else {
  133. $post->podPressMedia[$num]['atom'] = 'false';
  134. }
  135. if($post->podPressMedia[$num]['feedonly'] == 'on') {
  136. $post->podPressMedia[$num]['feedonly'] = 'true';
  137. } else {
  138. $post->podPressMedia[$num]['feedonly'] = 'false';
  139. }
  140. if(!isset($post->podPressMedia[$num]['disablePlayer']) || $post->podPressMedia[$num]['disablePlayer'] == false || $post->podPressMedia[$num]['disablePlayer'] == 'false') {
  141. $post->podPressMedia[$num]['disablePlayer'] = 'false';
  142. } else {
  143. $post->podPressMedia[$num]['disablePlayer'] = 'true';
  144. }
  145. if(!isset($post->podPressMedia[$num]['disablePreview']) || $post->podPressMedia[$num]['disablePreview'] == false || $post->podPressMedia[$num]['disablePreview'] == 'false') {
  146. $post->podPressMedia[$num]['disablePreview'] = 'false';
  147. } else {
  148. $post->podPressMedia[$num]['disablePreview'] = 'true';
  149. }
  150. if($post->podPressMedia[$num]['premium_only'] == 'on' || $post->podPressMedia[$num]['premium_only'] == true) {
  151. $post->podPressMedia[$num]['content_level'] = 'premium_content';
  152. }
  153. if(!isset($post->podPressMedia[$num]['content_level'])) {
  154. $post->podPressMedia[$num]['content_level'] = 'free';
  155. }
  156. echo "\n";
  157. echo "podPressAddMediaFile(".$post->podPressMedia[$num]['showme'].", '".js_escape($post->podPressMedia[$num]['URI'])."', '".js_escape($post->podPressMedia[$num]['URI_torrent'])."', '".js_escape($post->podPressMedia[$num]['title'])."', '".$post->podPressMedia[$num]['type']."', '".$post->podPressMedia[$num]['size']."', '".$post->podPressMedia[$num]['duration']."', '".$post->podPressMedia[$num]['dimensionW']."', '".$post->podPressMedia[$num]['dimensionH']."', '".$post->podPressMedia[$num]['previewImage']."', ".$post->podPressMedia[$num]['rss'].", ".$post->podPressMedia[$num]['atom'].", ".$post->podPressMedia[$num]['feedonly'].", ".$post->podPressMedia[$num]['disablePlayer'].", '".$post->podPressMedia[$num]['content_level']."');\n";
  158. $num++;
  159. }
  160. echo '</script>'."\n";
  161. echo '<input type="hidden" id="podPressMedia_defaultpreviewImage" value="'.PODPRESS_URL.'/images/vpreview_center.png" />'."\n";
  162. // NONCE_KEY has been introduced in WP 2.7 the first time
  163. echo '<input type="hidden" id="podPress_AJAX_sec" value="' . wp_create_nonce('Af|F07*wC7g-+OX$;|Z5;R@Pi]ZgoU|Zex8=`?mO-Mdvu+WC6l=6<O^2d~+~U3MM') . '" />'."\n";
  164. echo '<div id="podPressstuff" class="dbx-group">'."\n";
  165. echo ' <fieldset id="podpresscontent" class="dbx-box">'."\n";
  166. if ( 'page' == $entryType ) {
  167. echo ' <h3 class="dbx-handle">'.__('podPress - podcasting settings of this page', 'podpress').'</h3> '."\n";
  168. } else {
  169. echo ' <h3 class="dbx-handle">'.__('podPress - podcasting settings of this post', 'podpress').'</h3> '."\n";
  170. }
  171. echo ' <div class="dbx-content" id="podPress_mediaFileList">'."\n";
  172. echo ' <strong>'.__('Podcasting Files:', 'podpress').'</strong><br/>'."\n";
  173. // debug start
  174. $num = 0;
  175. while ($num < $this->settings['maxMediaFiles']) {
  176. if(!isset($post->podPressMedia[$num])) {
  177. $num++;
  178. continue;
  179. }
  180. $thisMedia = $post->podPressMedia[$num];
  181. if($thisMedia['showme'] == 'true') {
  182. $display_text = 'block';
  183. } else {
  184. $display_text = 'none';
  185. }
  186. echo ' <div id="podPressMediaFileContainer_'.$num.'" class="wrap" style="visibility: visible; display: '.$display_text.';">'."\n";
  187. echo ' <table border="0" style="width: 100%;"><tr><td style="border-right-style: none; text-align: left;"><label><strong>'.__('Media File:', 'podpress').'</strong> </label></td>';
  188. echo ' <td style="border-left-style: none; text-align: right;">';
  189. echo ' <input type="button" value="'.__('Move Up', 'podpress').'" onclick="podPressMoveFile('.$num.', \'up\'); podPressDisplayMediaFiles();"/>'."\n";
  190. echo ' <input type="button" value="'.__('Move Down', 'podpress').'" onclick="podPressMoveFile('.$num.', \'down\'); podPressDisplayMediaFiles();"/>'."\n";
  191. echo ' <input type="button" name="podPressAddAnother" value="'.__('Remove File', 'podpress').'" onclick="podPressRemoveFile('.$num.'); podPressDisplayMediaFiles();"/>';
  192. echo ' </td></tr></table>'."\n";
  193. echo ' <table border="0">'."\n";
  194. echo ' <tr>'."\n";
  195. echo ' <td>'."\n";
  196. echo ' <label for="podPressMedia_'.$num.'_URI">'.__('Location', 'podpress').': </label>'."\n";
  197. echo ' </td>'."\n";
  198. echo ' <td>'."\n";
  199. if(!empty($files) || $this->settings['enablePodangoIntegration']) {
  200. $fileOptionList = '';
  201. echo ' <select name="podPressMedia['.$num.'][URI]" id="podPressMedia_'.$num.'_URI" width="35" onchange="javascript: if(this.value==\'!\') { podPress_customSelectVal(this, \'Specifiy URL.\'); } podPressMediaFiles['.$num.'][\'URI\'] = this.value; podPressDetectType('.$num.');">'."\n";
  202. echo ' <option value="!">'.__('Specify URL ...', 'podpress').'</option>'."\n";
  203. $fileSelected = false;
  204. if($this->settings['enablePodangoIntegration']) {
  205. $podangoOptGroup = '';
  206. $podangoFirstOptGroup = true;
  207. foreach($podangoMediaFiles as $podangoMediaFile) {
  208. if(!empty($podangoMediaFile['EpisodeID']) && $podangoMediaFile['EpisodeID'] != $post->podPressPostSpecific['PodangoEpisodeID'] && $post->post_title != $podangoMediaFile['EpisodeTitle']) {
  209. continue;
  210. }
  211. if($podangoOptGroup != $podangoMediaFile['Podcast']) {
  212. $podangoOptGroup = $podangoMediaFile['Podcast'];
  213. if(!$podangoFirstOptGroup) {
  214. echo " </optgroup>\n";
  215. }
  216. $x = $this->podangoapi->GetPodcast($podangoMediaFile['Podcast'], true);
  217. echo ' <optgroup name="PodangoOptGroup'.$podangoMediaFile['Podcast'].'" label="Podango Podcast: '.$x['Title'].'">'."\n";
  218. unset($x);
  219. }
  220. $key = 'Podango:'.$podangoMediaFile['Podcast'].':'.$podangoMediaFile['ID'].':'.$podangoMediaFile['EpisodeID'].':'.$podangoMediaFile['Filename'];
  221. if($key == $thisMedia['URI']) {
  222. $xSelected = ' selected="selected"';
  223. $fileSelected = true;
  224. } else {
  225. $xSelected = '';
  226. }
  227. echo ' <option value="'.$key.'"'.$xSelected.'>'.$podangoMediaFile['Filename'].'</option>'."\n";
  228. }
  229. echo " </optgroup>\n";
  230. echo ' <optgroup name="LocallyHosted" label="Locally Hosted">'."\n";
  231. }
  232. foreach ($files as $key=>$val) {
  233. if(is_numeric($key)) {
  234. $key = $val;
  235. }
  236. if($key == $thisMedia['URI']) {
  237. $xSelected = ' selected="selected"';
  238. $fileSelected = true;
  239. } else {
  240. $xSelected = '';
  241. }
  242. if ( TRUE == version_compare(PHP_VERSION, '5.0', '<') ) { // html_entity_decode can not handle the charset UTF-8 in most of the PHP 4 version
  243. $fileOptionList .= ' <option value="'.attribute_escape(htmlentities($key)).'"'.$xSelected.'>'.htmlentities(podPress_stringLimiter($val, 100, true)).'</option>'."\n";
  244. } else {
  245. if ( FALSE === stristr(PHP_OS, 'WIN') ) {
  246. $fileOptionList .= ' <option value="'.attribute_escape(htmlentities($key, ENT_COMPAT, $blog_charset)).'"'.$xSelected.'>'.htmlentities(podPress_stringLimiter($val, 100, true), ENT_COMPAT, $blog_charset).'</option>'."\n";
  247. } else {
  248. $fileOptionList .= ' <option value="'.attribute_escape(htmlentities($key)).'"'.$xSelected.'>'.htmlentities(podPress_stringLimiter($val, 100, true)).'</option>'."\n";
  249. }
  250. }
  251. }
  252. if ( !$fileSelected ) {
  253. if ( TRUE == version_compare(PHP_VERSION, '5.0', '<') ) { // html_entity_decode can not handle the charset UTF-8 in most of the PHP 4 version
  254. echo ' <option value="'.attribute_escape(htmlentities($thisMedia['URI'])).'" selected="selected">'.htmlentities(podPress_stringLimiter($thisMedia['URI'], 100, true)).'</option>'."\n";
  255. } else {
  256. if ( FALSE === stristr(PHP_OS, 'WIN') ) {
  257. echo ' <option value="'.attribute_escape(htmlentities($thisMedia['URI']), ENT_COMPAT, $blog_charset).'" selected="selected">'.htmlentities(podPress_stringLimiter($thisMedia['URI'], 100, true), ENT_COMPAT, $blog_charset).'</option>'."\n";
  258. } else {
  259. echo ' <option value="'.attribute_escape($thisMedia['URI']).'" selected="selected">'.htmlentities(podPress_stringLimiter($thisMedia['URI'], 100, true), ENT_COMPAT, $blog_charset).'</option>'."\n";
  260. }
  261. }
  262. }
  263. echo $fileOptionList;
  264. unset($fileOptionList);
  265. if($this->settings['enablePodangoIntegration']) {
  266. echo " </optgroup>\n";
  267. }
  268. echo ' </select>'."\n";
  269. echo ' <input type="hidden" id="podPressMedia_'.$num.'_cleanURI" value="no" />'."\n";
  270. } else {
  271. echo ' <input type="text" id="podPressMedia_'.$num.'_URI" name="podPressMedia['.$num.'][URI]" size="40" value="'.attribute_escape($thisMedia['URI']).'" onchange="javascript: podPressMediaFiles['.$num.'][\'URI\'] = this.value; podPressDetectType('.$num.');" />'."\n";
  272. echo ' <span id="podPressMedia_'.$num.'_URI_chrWarning" class="podpress_notice podPressMedia_URI_chrWarning"> '.sprintf(__('<strong>Notice:</strong> It is not recommended to use other than these characters: %1$s or whitespaces in file and folder names.', 'podpress'), 'abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 .:/_-\ ').'</span>'."\n";
  273. echo ' <input type="hidden" id="podPressMedia_'.$num.'_cleanURI" value="yes" />'."\n";
  274. }
  275. echo ' </td>'."\n";
  276. echo ' </tr>'."\n";
  277. if($this->settings['enableTorrentCasting']) {
  278. echo ' <tr>'."\n";
  279. echo ' <td>'."\n";
  280. echo ' <label for="podPressMedia_'.$num.'_URItorrent">'.__('.torrent Location', 'podpress').'</label>: '."\n";
  281. echo ' </td>'."\n";
  282. echo ' <td>'."\n";
  283. echo ' <input type="text" id="podPressMedia_'.$num.'_URItorrent" name="podPressMedia['.$num.'][URI_torrent]" size="40" value="'.attribute_escape($thisMedia['URI_torrent']).'" onchange="javascript: podPressMediaFiles['.$num.'][\'URI_torrent\'] = this.value;" />'."\n";
  284. echo ' </td>'."\n";
  285. echo ' </tr>'."\n";
  286. }
  287. echo ' <tr>'."\n";
  288. echo ' <td>'."\n";
  289. echo ' <label for="podPressMedia_'.$num.'_title">'.__('Title', 'podpress').'</label>: '."\n";
  290. echo ' </td>'."\n";
  291. echo ' <td>'."\n";
  292. echo ' <input type="text" id="podPressMedia_'.$num.'_title" name="podPressMedia['.$num.'][title]" size="40" value="'.attribute_escape($thisMedia['title']).'" onchange="javascript: podPressMediaFiles['.$num.'][\'title\'] = this.value;" />'."\n";
  293. echo ' </td>'."\n";
  294. echo ' </tr>'."\n";
  295. echo ' <tr>'."\n";
  296. echo ' <td>'."\n";
  297. echo ' <label for="podPressMedia_'.$num.'_type">'.__('Type', 'podpress').'</label>: '."\n";
  298. echo ' </td>'."\n";
  299. echo ' <td>'."\n";
  300. echo ' <select id="podPressMedia_'.$num.'_type" name="podPressMedia['.$num.'][type]" onchange="javascript: podPressMediaFiles['.$num.'][\'type\'] = this.value; podPressAdjustMediaFieldsBasedOnType('.$num.');" >'."\n"; podPress_mediaOptions(); echo '</select>'."\n";
  301. echo ' </td>'."\n";
  302. echo ' </tr>'."\n";
  303. echo ' <tr id="podPressMediaSizeWrapper_'.$num.'" >'."\n";
  304. echo ' <td>'."\n";
  305. echo ' <label for="podPressMedia_'.$num.'_size">'.__('File Size', 'podpress').'</label>: '."\n";
  306. echo ' </td>'."\n";
  307. echo ' <td>'."\n";
  308. echo ' <input type="text" id="podPressMedia_'.$num.'_size" name="podPressMedia['.$num.'][size]" size="10" value="'.$thisMedia['size'].'" onchange="javascript: podPressMediaFiles['.$num.'][\'size\'] = this.value;"/> '.__('[in byte]', 'podpress').' <img src="'.PODPRESS_URL.'/images/ajax-loader.gif" id="podPressMedia_'.$num.'_size_loadimg" class="podpress_ajax_loader_img" /><input type="button" id="podPressMedia_'.$num.'_size_detectbutton" value="'.__('Auto Detect', 'podpress').'" onclick="podPress_getfileinfo(\'size\', '.$num.');"/>'."\n";
  309. echo ' </td>'."\n";
  310. echo ' </tr>'."\n";
  311. echo ' <tr id="podPressMediaDurationWrapper_'.$num.'" style="display: none;">'."\n";
  312. echo ' <td>'."\n";
  313. echo ' <label for="podPressMedia_'.$num.'_duration">'.__('Duration', 'podpress').'</label>: '."\n";
  314. echo ' </td>'."\n";
  315. echo ' <td>'."\n";
  316. echo ' <input type="text" id="podPressMedia_'.$num.'_duration" name="podPressMedia['.$num.'][duration]" size="10" value="'.$thisMedia['duration'].'" onchange="javascript: podPressMediaFiles['.$num.'][\'duration\'] = this.value;"/> <span class="podpress_abbr" title="'.__('hours:minutes:seconds - for example: 2:45:10 or 34:01 or 1:36 or 120:47 or 0:10', 'podpress').'">'.__('[hh:mm:ss]', 'podpress').'</span> <img src="'.PODPRESS_URL.'/images/ajax-loader.gif" id="podPressMedia_'.$num.'_duration_loadimg" class="podpress_ajax_loader_img" /><input type="button" id="podPressMedia_'.$num.'_duration_detectbutton" value="'.__('Auto Detect', 'podpress').'" onclick="podPress_getfileinfo(\'duration\', '.$num.');"/> ('.sprintf(__('This may take some time for remote files. %1$s', 'podpress'), '<span class="podpress_abbr" title="'.__('If the file is not on the same server as your blog then podPress will attempt to download the file in order to get this information with the help of getID3() which is only able to retrieve ID3 tags from local files. podPress removes the temporary download file at the end of this process. It is likely that this feature works only for relative small files because the download is probably limited by execution time and memory limits on the server of your blog.', 'podpress').'">'.__('Because ...', 'podpress').'</span>').')'."\n";
  317. echo ' </td>'."\n";
  318. echo ' </tr>'."\n";
  319. if(empty($thisMedia['previewImage'])) {
  320. $thisMedia['previewImage'] = podPress_url().'images/vpreview_center.png';
  321. }
  322. echo ' <tr id="podPressMediaPreviewImageWrapper_'.$num.'" style="display: none;">'."\n";
  323. echo ' <td>'."\n";
  324. echo ' <label for="podPressMedia_'.$num.'_previewImage">'.__('Preview Image URL', 'podpress').'</label>: '."\n";
  325. echo ' </td>'."\n";
  326. echo ' <td>'."\n";
  327. echo ' <input type="text" id="podPressMedia_'.$num.'_previewImage" name="podPressMedia['.$num.'][previewImage]" size="40" value="'.attribute_escape($thisMedia['previewImage']).'" onchange="javascript: podPressPreviewImageOnChange('.$num.', this.value);" />'."\n";
  328. echo ' </td>'."\n";
  329. echo ' </tr>'."\n";
  330. echo ' <tr id="podPressMediaPreviewImageDisplayWrapper_'.$num.'" style="display: none;">'."\n";
  331. echo ' <td>'."\n";
  332. echo ' '.__('Preview Image', 'podpress').': '."\n";
  333. echo ' </td>'."\n";
  334. echo ' <td>'."\n";
  335. echo ' <div id="podPressPlayerSpace_'.$num.'"></div>'."\n";
  336. echo '<script type="text/javascript"><!--'."\n";
  337. echo " document.getElementById('podPressPlayerSpace_".$num."').innerHTML = podPressGenerateVideoPreview (".$num.", '', ".$thisMedia['dimensionW'].", ".$thisMedia['dimensionH'].", document.getElementById('podPressMedia_".$num."_previewImage').value, true);\n";
  338. echo "--></script>\n";
  339. echo ' </td>'."\n";
  340. echo ' </tr>'."\n";
  341. echo ' <tr id="podPressMediaDimensionWrapper_'.$num.'">'."\n";
  342. echo ' <td>'."\n";
  343. echo ' '.__('Dimensions', 'podpress').' (WxH): '."\n";
  344. echo ' </td>'."\n";
  345. echo ' <td>'."\n";
  346. echo ' <input type="text" id="podPressMedia_'.$num.'_dimensionW" name="podPressMedia['.$num.'][dimensionW]" size="5" value="'.$thisMedia['dimensionW'].'" onchange="javascript: podPressMediaFiles['.$num.'][\'dimensionW\'] = this.value; podPressUpdateDimensionList(\''.$num.'\');" />x<input type="text" id="podPressMedia_'.$num.'_dimensionH" name="podPressMedia['.$num.'][dimensionH]" size="5" value="'.$thisMedia['dimensionH'].'" onchange="javascript: podPressMediaFiles['.$num.'][\'dimensionH\'] = this.value; podPressUpdateDimensionList(\''.$num.'\')" /> '."\n";
  347. echo ' <select id="podPressMedia_'.$num.'_dimensionList" onchange="javascript: podPressUpdateDimensions(\''.$num.'\', this.value);">'."\n"; podPress_videoDimensionOptions($thisMedia['dimensionW'].':'.$thisMedia['dimensionH']); echo '</select>'."\n";
  348. echo ' </td>'."\n";
  349. echo ' </tr>'."\n";
  350. if($post->post_status == 'static') {
  351. echo ' <tr style="display: none;">'."\n";
  352. } else {
  353. echo ' <tr>'."\n";
  354. }
  355. echo ' <td nowrap="nowrap">'."\n";
  356. echo ' '.__('Included in', 'podpress').': '."\n";
  357. echo ' </td>'."\n";
  358. echo ' <td>'."\n";
  359. echo ' &nbsp;<label for="podPressMedia_'.$num.'_rss">'.__('RSS2', 'podpress').'</label> <input type="checkbox" id="podPressMedia_'.$num.'_rss" name="podPressMedia['.$num.'][rss]" onchange="javascript: podPressMediaFiles['.$num.'][\'rss\'] = this.checked; podPressSetSingleRSS('.$num.');" />'."\n";
  360. echo ' &nbsp;<label for="podPressMedia_'.$num.'_atom">'.__('ATOM', 'podpress').'</label> <input type="checkbox" id="podPressMedia_'.$num.'_atom" name="podPressMedia['.$num.'][atom]" onchange="javascript: podPressMediaFiles['.$num.'][\'atom\'] = this.checked;" />'."\n";
  361. echo ' &nbsp;<label for="podPressMedia_'.$num.'_feedonly">'.__('Feed Only', 'podpress').'</label> <input type="checkbox" id="podPressMedia_'.$num.'_feedonly" name="podPressMedia['.$num.'][feedonly]" onchange="javascript: podPressMediaFiles['.$num.'][\'feedonly\'] = this.checked;" />'."\n";
  362. echo ' </td>'."\n";
  363. echo ' </tr>'."\n";
  364. if($this->settings['enablePremiumContent']) {
  365. echo ' <tr>'."\n";
  366. echo ' <td nowrap="nowrap">'."\n";
  367. echo ' <label for="podPressMedia_'.$num.'_content_level">'.__('Subscription', 'podpress').'</label>:';
  368. echo ' </td>'."\n";
  369. echo ' <td>'."\n";
  370. echo ' <select id="podPressMedia_'.$num.'_content_level" name="podPressMedia['.$num.'][content_level]" onchange="javascript: podPressMediaFiles['.$num.'][\'content_level\'] = this.value;">'."\n";
  371. echo ' <option value="free" '; if(empty($thisMedia['content_level']) || $thisMedia['content_level'] == 'free') { echo 'selected="selected"'; } echo '>'.__('Free', 'podpress').'</option>'."\n";
  372. foreach (podPress_getCapList(true) as $cap) {
  373. if(substr($cap, -8, 8) == '_content') {
  374. echo ' <option value="'.$cap.'" '; if($thisMedia['content_level'] == $cap) { echo 'selected="selected"'; } echo '>'.__(podPress_getCapName($cap), 'podpress').'</option>'."\n";
  375. }
  376. }
  377. echo ' </select>'."\n";
  378. echo ' </td>'."\n";
  379. echo ' </tr>'."\n";
  380. }
  381. echo ' <tr>'."\n";
  382. echo ' <td nowrap="nowrap">'."\n";
  383. echo ' <label for="podPressMedia_'.$num.'_disablePlayer">'.__('Disable Player', 'podpress').'</label>:'."\n";
  384. echo ' </td>'."\n";
  385. echo ' <td>'."\n";
  386. echo ' <input type="checkbox" id="podPressMedia_'.$num.'_disablePlayer" name="podPressMedia['.$num.'][disablePlayer]"'; if($thisMedia['disablePlayer'] != 'false') { echo 'checked="checked" '; } echo ' onchange="javascript: podPressMediaFiles['.$num.'][\'disablePlayer\'] = this.checked;" />'."\n";
  387. echo ' &nbsp;&nbsp; '.__('(Use if this media file is not compatible with one of the included players.)', 'podpress')."\n";
  388. echo ' </td>'."\n";
  389. echo ' </tr>'."\n";
  390. echo ' <tr>'."\n";
  391. echo ' <td nowrap="nowrap">'."\n";
  392. echo ' <label for="podPressMedia_'.$num.'_disablePreview">'.__('Disable Preview Player', 'podpress').'</label>:'."\n";
  393. echo ' </td>'."\n";
  394. echo ' <td>'."\n";
  395. echo ' <input type="checkbox" id="podPressMedia_'.$num.'_disablePreview" name="podPressMedia['.$num.'][disablePreview]"'; if($thisMedia['disablePreview'] != 'false') { echo 'checked="checked" '; } echo ' onchange="javascript: podPressMediaFiles['.$num.'][\'disablePreview\'] = this.checked;" />'."\n";
  396. echo ' &nbsp;&nbsp; '.__('(Use this to disable the "Click to Play" preview player.)', 'podpress')."\n";
  397. echo ' </td>'."\n";
  398. echo ' </tr>'."\n";
  399. $actionMedia = $thisMedia;
  400. $actionMedia['num'] = $num;
  401. do_action('podPress_customMediaData', array($actionMedia));
  402. echo ' <tr id="podPressMedia_'.$num.'_id3tags_details_row">'."\n";
  403. echo ' <td style="vertical-align: top;" nowrap="nowrap">'."\n";
  404. echo ' '.__('Tag (ID3) Info', 'podpress').":\n";
  405. echo ' </td>'."\n";
  406. echo ' <td>'."\n";
  407. echo ' <img src="'.PODPRESS_URL.'/images/ajax-loader.gif" id="podPressMedia_'.$num.'_id3tags_loadimg" class="podpress_ajax_loader_img" /><input type="button" id="podPressMedia_'.$num.'_id3tags_detectbutton" value="'.__('Show','podpress').'" onclick="javascript: podPressShowHideID3Tags('.$num.');" /> ('.sprintf(__('This may take some time for remote files. %1$s', 'podpress'), '<span class="podpress_abbr" title="'.__('If the file is not on the same server as your blog then podPress will attempt to download the file in order to get this information with the help of getID3() which is only able to retrieve ID3 tags from local files. podPress removes the temporary download file at the end of this process. It is likely that this feature works only for relative small files because the download is probably limited by execution time and memory limits on the server of your blog.', 'podpress').'">'.__('Because ...', 'podpress').'</span>').')'."\n";
  408. echo ' </td>'."\n";
  409. echo ' </tr>'."\n";
  410. echo ' <tr>'."\n";
  411. echo ' <td colspan="2">'."\n";
  412. echo ' <div id="podPressMedia_'.$num.'_id3tags" style="display: none; vertical-align: top;">'."\n";
  413. echo ' </div>'."\n";
  414. echo ' </td>'."\n";
  415. echo ' </tr>'."\n";
  416. echo ' </table>'."\n";
  417. echo ' </div>'."\n";
  418. $num++;
  419. }
  420. echo ' <h3>'.sprintf(__('To control player location in your post, you may put %1$s where you want it to appear. You can choose the default postion on the general settings page of podPress.', 'podpress'), $this->podcasttag).'</h3> '."\n";
  421. echo ' <input type="button" name="podPressAddAnother" value="'.__('Add Media File','podpress').'" onclick="javascript: podPressAddMediaFile(true, \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'new\', true, false, false, \'free\'); podPressDisplayMediaFiles();"/>'."\n";
  422. if($entryType != 'page') {
  423. echo ' <br/>'."\n";
  424. echo ' <strong>'.__('Post specific settings for iTunes', 'podpress').': </strong>'."\n";
  425. echo ' <input type="button" name="iTunesSpecificSettings_button" id="iTunesSpecificSettings_button" value="Show" onclick="javascript: podPressShowHideDiv(\'iTunesSpecificSettings\');"/>'."\n";
  426. echo ' <div class="wrap" id="iTunesSpecificSettings" style="display: none;">'."\n";
  427. echo ' <table border="0">'."\n";
  428. echo ' <tr>'."\n";
  429. echo ' <td width="1%" nowrap="nowrap">'."\n";
  430. echo ' <label for="iTunesSubtitleChoice">'.__('iTunes:Subtitle', 'podpress').'</label> <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'iTunesSubtitleHelp\');">(?)</a>:'."\n";
  431. echo ' </td>'."\n";
  432. echo ' <td>'."\n";
  433. echo ' <select id="iTunesSubtitleChoice" name="iTunesSubtitleChoice" onchange="javascript: if(this.value == \'Custom\') { document.getElementById(\'iTunesSubtitleWrapper\').style.display=\'\'; } else { document.getElementById(\'iTunesSubtitleWrapper\').style.display=\'none\'; }">'."\n";
  434. echo ' <option value="PostExcerpt" '; if($post->podPressPostSpecific['itunes:subtitle'] == '##PostExcerpt##') { echo 'selected="selected"'; } echo '>'.__('Use the excerpt', 'podpress').'</option>'."\n";
  435. echo ' <option value="Custom" '; if($post->podPressPostSpecific['itunes:subtitle'] != '##PostExcerpt##') { echo 'selected="selected"'; } echo '>'.__('Insert custom value', 'podpress').'</option>'."\n";
  436. echo ' </select>'."\n";
  437. echo ' </td>'."\n";
  438. echo ' </tr>'."\n";
  439. echo ' <tr id="iTunesSubtitleHelp" style="display: none;">'."\n";
  440. echo ' <td colspan="2">'.sprintf(__('"%1$s" (default) podPress takes the first 255 characters from the excerpt of the excerpt and if there is none from the blog Post text.', 'podpress'),__('Use the excerpt', 'podpress')).'</td>'."\n";
  441. echo ' </tr>'."\n";
  442. if($post->podPressPostSpecific['itunes:subtitle'] == '##PostExcerpt##') { $tempShowMe = 'style="display: none;"';$post->podPressPostSpecific['itunes:subtitle'] = ''; } else { $tempShowMe = ''; }
  443. echo ' <tr id="iTunesSubtitleWrapper" '.$tempShowMe.'>'."\n";
  444. echo ' <td width="1%" nowrap="nowrap">&nbsp;</td>'."\n";
  445. echo ' <td>'."\n";
  446. echo ' <textarea name="iTunesSubtitle" rows="4" cols="40">'.stripslashes($post->podPressPostSpecific['itunes:subtitle']).'</textarea>'."\n";
  447. echo ' </td>'."\n";
  448. echo ' </tr>'."\n";
  449. echo ' <tr>'."\n";
  450. echo ' <td width="1%" nowrap="nowrap">'."\n";
  451. echo ' <label for="iTunesSummaryChoice">'.__('iTunes:Summary', 'podpress').'</label> <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'iTunesSummaryHelp\');">(?)</a>:'."\n";
  452. echo ' </td>'."\n";
  453. echo ' <td>'."\n";
  454. echo ' <select id="iTunesSummaryChoice" name="iTunesSummaryChoice" onchange="javascript: if(this.value == \'Custom\') { document.getElementById(\'iTunesSummaryWrapper\').style.display=\'\'; } else { document.getElementById(\'iTunesSummaryWrapper\').style.display=\'none\'; }">'."\n";
  455. echo ' <option value="PostExcerpt" '; if($post->podPressPostSpecific['itunes:summary'] == '##PostExcerpt##') { echo 'selected="selected"'; } echo '>'.__('Use the excerpt', 'podpress').'</option>'."\n";
  456. echo ' <option value="PostContentShortened" '; if($post->podPressPostSpecific['itunes:summary'] == '##PostContentShortened##') { echo 'selected="selected"'; } echo '>'.__('autom. excerpt of the post content', 'podpress').'</option>'."\n";
  457. echo ' <option value="Global" '; if($post->podPressPostSpecific['itunes:summary'] == '##Global##') { echo 'selected="selected"'; } echo '>'.__('Use Global', 'podpress').'</option>'."\n";
  458. echo ' <option value="Custom" '; if($post->podPressPostSpecific['itunes:summary'] != '##Global##' && $post->podPressPostSpecific['itunes:summary'] != '##PostExcerpt##' && $post->podPressPostSpecific['itunes:summary'] != '##PostContentShortened##') { echo 'selected="selected"'; } echo '>'.__('Insert custom value', 'podpress').'</option>'."\n";
  459. echo ' </select>'."\n";
  460. echo ' </td>'."\n";
  461. echo ' </tr>'."\n";
  462. echo ' <tr id="iTunesSummaryHelp" style="display: none;">'."\n";
  463. echo ' <td colspan="2">'.sprintf(__('"%1$s" (default) podPress takes the excerpt. If you have not written an excerpt then it takes a part from the blog Post text.', 'podpress'),__('Use the excerpt', 'podpress')).'</td>'."\n";
  464. echo ' </tr>'."\n";
  465. if($post->podPressPostSpecific['itunes:summary'] == '##Global##' || $post->podPressPostSpecific['itunes:summary'] == '##PostExcerpt##' || $post->podPressPostSpecific['itunes:summary'] == '##PostContentShortened##') { $tempShowMe = 'style="display: none;"'; $post->podPressPostSpecific['itunes:summary'] = ''; } else { $tempShowMe = ''; }
  466. echo ' <tr id="iTunesSummaryWrapper" '.$tempShowMe.'>'."\n";
  467. echo ' <td width="1%" nowrap="nowrap">&nbsp;</td>'."\n";
  468. echo ' <td>'."\n";
  469. echo ' <textarea name="iTunesSummary" rows="4" cols="40">'.stripslashes($post->podPressPostSpecific['itunes:summary']).'</textarea>'."\n";
  470. echo ' </td>'."\n";
  471. echo ' </tr>'."\n";
  472. echo ' <tr>'."\n";
  473. echo ' <td width="1%" nowrap="nowrap">'."\n";
  474. echo ' <label for="iTunesKeywordsChoice">'.__('iTunes:Keywords', 'podpress').'</label> <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'iTunesKeywordsHelp\');">(?)</a>:'."\n";
  475. echo ' </td>'."\n";
  476. echo ' <td>'."\n";
  477. echo ' <select id="iTunesKeywordsChoice" name="iTunesKeywordsChoice" onchange="javascript: if(this.value == \'Custom\') { document.getElementById(\'iTunesKeywordsWrapper\').style.display=\'\'; } else { document.getElementById(\'iTunesKeywordsWrapper\').style.display=\'none\'; }">'."\n";
  478. echo ' <option value="WordPressCats" '; if($post->podPressPostSpecific['itunes:keywords'] == '##WordPressCats##') { echo 'selected="selected"'; } echo '>'.__('Use WordPress Categories', 'podpress').'</option>'."\n";
  479. echo ' <option value="post_tags" '; if($post->podPressPostSpecific['itunes:keywords'] == '##post_tags##') { echo 'selected="selected"'; } echo '>'.__('Use the tags of the post', 'podpress').'</option>'."\n";
  480. echo ' <option value="Global" '; if($post->podPressPostSpecific['itunes:keywords'] == '##Global##') { echo 'selected="selected"'; } echo '>'.__('Use Global', 'podpress').' ('.podPress_stringLimiter(stripslashes($this->settings['iTunes']['keywords']), 40) .')</option>'."\n";
  481. echo ' <option value="Custom" '; if($post->podPressPostSpecific['itunes:keywords'] != '##Global##' && $post->podPressPostSpecific['itunes:keywords'] != '##WordPressCats##' && $post->podPressPostSpecific['itunes:keywords'] != '##post_tags##') { echo 'selected="selected"'; } echo '>'.__('Insert custom value', 'podpress').'</option>'."\n";
  482. echo ' </select>'."\n";
  483. echo ' </td>'."\n";
  484. echo ' </tr>'."\n";
  485. echo ' <tr id="iTunesKeywordsHelp" style="display: none;">'."\n";
  486. echo ' <td colspan="2">'.__('Not visible in iTunes, but used for searches.', 'podpress').'</td>'."\n";
  487. echo ' </tr>'."\n";
  488. if($post->podPressPostSpecific['itunes:keywords'] == '##Global##' || $post->podPressPostSpecific['itunes:keywords'] == '##WordPressCats##' || $post->podPressPostSpecific['itunes:keywords'] == '##post_tags##') { $tempShowMe = 'style="display: none;"'; $post->podPressPostSpecific['itunes:keywords'] = ''; } else { $tempShowMe = ''; }
  489. echo ' <tr id="iTunesKeywordsWrapper" '.$tempShowMe.'>'."\n";
  490. echo ' <td width="1%" nowrap="nowrap">&nbsp;</td>'."\n";
  491. echo ' <td>'."\n";
  492. echo ' '.__('a list of max. 12 comma separated words', 'podpress').'<br/><textarea name="iTunesKeywords" rows="4" cols="40">'.stripslashes($post->podPressPostSpecific['itunes:keywords']).'</textarea>'."\n";
  493. echo ' </td>'."\n";
  494. echo ' </tr>'."\n";
  495. echo ' <tr>'."\n";
  496. echo ' <td width="1%" nowrap="nowrap">'."\n";
  497. echo ' <label for="iTunesAuthorChoice">'.__('iTunes:Author', 'podpress').'</label> <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'iTunesAuthorHelp\');">(?)</a>:'."\n";
  498. echo ' </td>'."\n";
  499. echo ' <td>'."\n";
  500. echo ' <select id="iTunesAuthorChoice" name="iTunesAuthorChoice" onchange="javascript: if(this.value == \'Custom\') { document.getElementById(\'iTunesAuthorWrapper\').style.display=\'\'; } else { document.getElementById(\'iTunesAuthorWrapper\').style.display=\'none\'; }">'."\n";
  501. echo ' <option value="Global" '; if($post->podPressPostSpecific['itunes:author'] == '##Global##') { echo 'selected="selected"'; } echo '>'.__('Use Global', 'podpress').' ('.podPress_stringLimiter(ucfirst(stripslashes($this->settings['iTunes']['author'])), 40).')</option>'."\n";
  502. echo ' <option value="Custom" '; if($post->podPressPostSpecific['itunes:author'] != '##Global##') { echo 'selected="selected"'; } echo '>'.__('Insert custom value', 'podpress').'</option>'."\n";
  503. echo ' </select>'."\n";
  504. echo ' </td>'."\n";
  505. echo ' </tr>'."\n";
  506. echo ' <tr id="iTunesAuthorHelp" style="display: none;">'."\n";
  507. echo ' <td colspan="2">'.__('Used if this Author is different than the feeds author.', 'podpress').'</td>'."\n";
  508. echo ' </tr>'."\n";
  509. if($post->podPressPostSpecific['itunes:author'] == '##Global##') { $tempShowMe = 'style="display: none;"'; $post->podPressPostSpecific['itunes:author'] = ''; } else { $tempShowMe = ''; }
  510. echo ' <tr id="iTunesAuthorWrapper" '.$tempShowMe.'>'."\n";
  511. echo ' <td width="1%" nowrap="nowrap">&nbsp;</td>'."\n";
  512. echo ' <td><input type="text" name="iTunesAuthor" size="40" value="'.attribute_escape($post->podPressPostSpecific['itunes:author']).'" /></td>'."\n";
  513. echo ' </tr>'."\n";
  514. echo ' <tr>'."\n";
  515. echo ' <td width="1%" nowrap="nowrap">'."\n";
  516. echo ' <label for="iTunesExplicit">'.__('iTunes:Explicit', 'podpress').'</label> <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'iTunesExplicitHelp\');">(?)</a>:'."\n";
  517. echo ' </td>'."\n";
  518. echo ' <td>'."\n";
  519. echo ' <select id="iTunesExplicit" name="iTunesExplicit">'."\n";
  520. echo ' <option value="Default" '; if($post->podPressPostSpecific['itunes:explicit'] == 'Default') { echo 'selected="selected"'; } echo '>'.__('Use Default', 'podpress').' ('.$this->settings['iTunes']['explicit'].')</option>'."\n";
  521. echo ' <option value="No" '; if($post->podPressPostSpecific['itunes:explicit'] == 'No') { echo 'selected="selected"'; } echo '>'.__('No', 'podpress').'</option>'."\n";
  522. echo ' <option value="Yes" '; if($post->podPressPostSpecific['itunes:explicit'] == 'Yes') { echo 'selected="selected"'; } echo '>'.__('Yes', 'podpress').'</option>'."\n";
  523. echo ' <option value="Clean" '; if($post->podPressPostSpecific['itunes:explicit'] == 'Clean') { echo 'selected="selected"'; } echo '>'.__('Clean', 'podpress').'</option>'."\n";
  524. echo ' </select>'."\n";
  525. echo ' </td>'."\n";
  526. echo ' </tr>'."\n";
  527. echo ' <tr id="iTunesExplicitHelp" style="display: none;">'."\n";
  528. echo ' <td colspan="2">'.__('Does your podcast contain explicit language or content which is not suitable for non-adult persons? (If you choose "Yes" or "Clean" then a corresponding notice will show up in iTunes (Explicit resp. Clean). If you choose "No" then there will be special notice.)', 'podpress').'</td>'."\n";
  529. echo ' </tr>'."\n";
  530. echo ' <tr>'."\n";
  531. echo ' <td width="1%" nowrap="nowrap">'."\n";
  532. echo ' <label for="iTunesBlock">'.__('iTunes:Block', 'podpress').'</label> <a href="javascript:void(null);" onclick="javascript: podPressShowHideRow(\'itunesBlockHelp\');">(?)</a>:'."\n";
  533. echo ' </td>'."\n";
  534. echo ' <td>'."\n";
  535. echo ' <select id="iTunesBlock" name="iTunesBlock">'."\n";
  536. echo ' <option value="Default" '; if($post->podPressPostSpecific['itunes:block'] == 'Default') { echo 'selected="selected"'; } echo '>'.__('Use Default', 'podpress').' ('.$this->settings['iTunes']['block'].')</option>'."\n";
  537. echo ' <option value="No" '; if($post->podPressPostSpecific['itunes:block'] == 'No') { echo 'selected="selected"'; } echo '>'.__('No', 'podpress').'</option>'."\n";
  538. echo ' <option value="Yes" '; if($post->podPressPostSpecific['itunes:block'] == 'Yes') { echo 'selected="selected"'; } echo '>'.__('Yes', 'podpress').'</option>'."\n";
  539. echo ' </select>'."\n";
  540. echo ' </td>'."\n";
  541. echo ' </tr>'."\n";
  542. echo ' <tr id="itunesBlockHelp" style="display: none;">'."\n";
  543. echo ' <td colspan="2">'.__('Prevent this episode or podcast from appearing in iTunes.', 'podpress').'</td>'."\n";
  544. echo ' </tr>'."\n";
  545. echo ' </table>'."\n";
  546. echo ' </div>'."\n";
  547. }
  548. if($this->settings['enablePodangoIntegration']) {
  549. echo " <br/>\n";
  550. echo ' <strong>Podango File Uploader</strong>';
  551. if($this->settings['podangoDefaultPodcast'] == '##ALL##') {
  552. $podangoPodcastList = $this->podangoapi->GetPodcasts(true);
  553. echo ' <strong>for: </strong><select name="podPressPodangoPodcastID" id="podPressPodangoPodcastID" onChange="javascript: document.getElementById(\'podangoUploadFrame\').src=\''.$this->podangoapi->fileUploader.'?podcastId=\'+this.value">'."\n";
  554. foreach ($podangoPodcastList as $k=>$v) {
  555. if(!isset($podangoPodcastID)) {
  556. $podangoPodcastID = $k;
  557. }
  558. echo ' <option value="'.$k.'">'.$v['Title'].'</option>'."\n";
  559. }
  560. echo ' </select>'."\n";
  561. } else {
  562. $podangoPodcastID = $this->settings['podangoDefaultPodcast'];
  563. }
  564. echo '<br/>'."\n";
  565. echo ' <iframe src="'.$this->podangoapi->fileUploader.'?podcastId='.$podangoPodcastID.'" id="podangoUploadFrame" title="Podango Upload" border="0" width="560" height="110"> </iframe>'."\n";
  566. }
  567. echo ' </div>'."\n";
  568. echo ' <h3>'.__('End of podPress. File Uploading support is not part of podPress', 'podpress').'</h3> '."\n";
  569. echo ' </fieldset>'."\n";
  570. echo '</div><br/>'."\n";
  571. echo '<script type="text/javascript">podPressDisplayMediaFiles(); </script>'."\n";
  572. }
  573. // ################################################################
  574. // ### for modern WP versions:
  575. // ################################################################
  576. function post_form_wp25plus($entryType = 'post') {
  577. $blog_charset = get_bloginfo('charset');
  578. if(!is_object($GLOBALS['post']) && isset($GLOBALS['post_cache'][$GLOBALS['post']])) {
  579. $post = $GLOBALS['post_cache'][$GLOBALS['post']];
  580. } else {
  581. $post = $GLOBALS['post'];
  582. }
  583. $post = $this->addPostData($post, true);
  584. if(($_GET['action'] == 'edit')) {
  585. $post_id = $_GET['post'];
  586. if(!is_array($post->podPressMedia)) {
  587. $post->podPressMedia = array();
  588. }
  589. }
  590. $files = array();
  591. $mediaFilePath = stripslashes($this->settings['mediaFilePath']);
  592. if(@is_dir($mediaFilePath)) {
  593. $dh = opendir($mediaFilePath);
  594. while (false !== ($filename = readdir($dh))) {
  595. if($filename != '.' && $filename != '..' && !is_dir($mediaFilePath.'/'.$filename) && !in_array(podPress_getFileExt($filename), array('php', 'html'))) {
  596. $files[] = $filename;
  597. }
  598. }
  599. natcasesort($files);
  600. }
  601. if($this->settings['enablePodangoIntegration']) {
  602. if(!empty($post->podPressPostSpecific['PodangoEpisodeID'])) {
  603. if(empty($post->podPressPostSpecific['PodangoMediaFileID'])) {
  604. $x = $this->podangoapi->GetEpisode($post->podPressPostSpecific['PodangoEpisodeID']);
  605. $post->podPressPostSpecific['PodangoMediaFileID'] = $x['MediaFileId'];
  606. unset($x);
  607. }
  608. $podangoMediaFiles = $this->podangoapi->GetMediaFile($post->podPressPostSpecific['PodangoMediaFileID']);
  609. } else {
  610. $podangoMediaFiles = $this->podangoapi->GetMediaFiles();
  611. }
  612. }
  613. echo '<script type="text/javascript">'."\n";
  614. echo "var podPressMaxMediaFiles = ".$this->settings['maxMediaFiles'].";\n";
  615. $newMediaDefaults = array();
  616. echo "var newMediaDefaults = new Array();\n";
  617. $newMediaDefaults['URI'] = '';
  618. echo "newMediaDefaults['URI'] = '".$newMediaDefaults['URI']."';\n";
  619. $newMediaDefaults['title'] = '';
  620. echo "newMediaDefaults['title'] = '".$newMediaDefaults['title']."';\n";
  621. $newMediaDefaults['type'] = 'audio_mp3';
  622. echo "newMediaDefaults['type'] = '".$newMediaDefaults['type']."';\n";
  623. $newMediaDefaults['size'] = '';
  624. echo "newMediaDefaults['size'] = '".$newMediaDefaults['size']."';\n";
  625. $newMediaDefaults['duration'] = '';
  626. echo "newMediaDefaults['duration'] = '".$newMediaDefaults['duration']."';\n";
  627. $newMediaDefaults['dimensionW'] = '320';
  628. echo "newMediaDefaults['dimensionW'] = '".$newMediaDefaults['dimensionW']."';\n";
  629. $newMediaDefaults['dimensionH'] = '240';
  630. echo "newMediaDefaults['dimensionH'] = '".$newMediaDefaults['dimensionH']."';\n";
  631. $newMediaDefaults['previewImage'] = podPress_url().'images/vpreview_center.png';
  632. echo "newMediaDefaults['previewImage'] = '".$newMediaDefaults['previewImage']."';\n";
  633. $newMediaDefaults['rss'] = 'false';
  634. echo "newMediaDefaults['rss'] = ".$newMediaDefaults['rss'].";\n";
  635. $newMediaDefaults['atom'] = 'true';
  636. echo "newMediaDefaults['atom'] = ".$newMediaDefaults['atom'].";\n";
  637. $newMediaDefaults['feedonly'] = 'true';
  638. echo "newMediaDefaults['feedonly'] = ".$newMediaDefaults['feedonly'].";\n";
  639. $newMediaDefaults['disablePlayer'] = 'false';
  640. echo "newMediaDefaults['disablePlayer'] = ".$newMediaDefaults['disablePlayer'].";\n";
  641. $newMediaDefaults['disablePreview'] = 'false';
  642. echo "newMediaDefaults['disablePreview'] = ".$newMediaDefaults['disablePreview'].";\n";
  643. $newMediaDefaults['content_level'] = 'free';
  644. echo "newMediaDefaults['content_level'] = '".$newMediaDefaults['content_level']."';\n";
  645. $newMediaDefaults['showme'] = 'false';
  646. echo "newMediaDefaults['showme'] = ".$newMediaDefaults['showme'].";\n";
  647. if ( FALSE !== empty($post->podPressMedia) ) {
  648. $num = 0;
  649. } else {
  650. $num = count($post->podPressMedia);
  651. $num = intval($num);
  652. if ($num > $this->settings['maxMediaFiles'] ) {
  653. $num = $this->settings['maxMediaFiles'];
  654. }
  655. }
  656. while ($num < $this->settings['maxMediaFiles']) {
  657. $post->podPressMedia[$num] = $newMediaDefaults;
  658. $num++;
  659. }
  660. $num = 0;
  661. while ($num < $this->settings['maxMediaFiles']) {
  662. if(!isset($post->podPressMedia[$num]['showme'])) {
  663. $post->podPressMedia[$num]['showme'] = 'true';
  664. }
  665. if($post->podPressMedia[$num]['showme'] == 'false') {
  666. $num++;
  667. continue;
  668. }
  669. if($this->settings['enablePodangoIntegration']) {
  670. if($podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['Filename'] == basename($post->podPressMedia[$num]['URI'])) {
  671. $post->podPressMedia[$num]['URI'] = 'Podango:'.$podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['Podcast'].':'.$podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['ID'].':'.$podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['EpisodeID'].':'.$podangoMediaFiles[$post->podPressPostSpecific['PodangoMediaFileID']]['Filename'];
  672. }
  673. }
  674. if($post->podPressMedia[$num]['rss'] == 'on') {
  675. $post->podPressMedia[$num]['rss'] = 'true';
  676. } else {
  677. $post->podPressMedia[$num]['rss'] = 'false';
  678. }
  679. if($post->podPressMedia[$num]['atom'] == 'on') {
  680. $post->podPressMedia[$num]['atom'] = 'true';
  681. } else {
  682. $post->podPressMedia[$num]['atom'] = 'false';
  683. }
  684. if($post->podPressMedia[$num]['feedonly'] == 'on') {
  685. $post->podPressMedia[$num]['feedonly'] = 'true';
  686. } else {
  687. $post->podPressMedia[$num]['feedonly'] = 'false';
  688. }
  689. if(!isset($post->podPressMedia[$num]['disablePlayer']) || $post->podPressMedia[$num]['disablePlayer'] == false || $post->podPressMedia[$num]['disablePlayer'] == 'false') {
  690. $post->podPressMedia[$num]['disablePlayer'] = 'false';
  691. } else {
  692. $post->podPressMedia[$num]['disablePlayer'] = 'true';
  693. }
  694. if(!isset($post->podPressMedia[$num]['disablePreview']) || $post->podPressMedia[$num]['disablePreview'] == false || $post->podPressMedia[$num]['disablePreview'] == 'false') {
  695. $post->podPressMedia[$num]['disablePreview'] = 'false';
  696. } else {
  697. $post->podPressMedia[$num]['disablePreview'] = 'true';
  698. }
  699. if($post->podPressMedia[$num]['premium_only'] == 'on' || $post->podPressMedia[$num]['premium_only'] == true) {
  700. $post->podPressMedia[$num]['content_level'] = 'premium_content';
  701. }
  702. if(!isset($post->podPressMedia[$num]['content_level'])) {
  703. $post->podPressMedia[$num]['content_level'] = 'free';
  704. }
  705. echo "\n";
  706. echo "podPressAddMediaFile(".

Large files files are truncated, but you can click here to view the full file