PluginProbe
WP Attachments / 3.1
WP Attachments v3.1
6.0.2 6.0.3 trunk 2.0 3 3.0.1 3.0.2 3.0.3 3.1 3.1.1 3.1.2 3.1.3 3.1.4 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.3 3.4 3.5 3.5.1 3.5.2 3.5.3 3.5.4 All 52 releases
← All changes | wp-attachments.php +245 -141 33.1 View file →
@@ -3,146 +3,250 @@
3 3 Plugin Name: WP Attachments
4 4 Plugin URI: http://marcomilesi.ml
5 5 Description: Automatically shows your attachments under every post and page content. Simple. Automatic. Easy. As it has to be!
6 6 Author: Marco Milesi
7 -Version: 3.0
7 +Version: 3.1
8 8 Author URI: http://marcomilesi.ml
9 -*/
10 -
11 -function wpatt_format_bytes($a_bytes)
12 -{
13 - if ($a_bytes < 1024) {
14 - return $a_bytes . ' B';
15 - } elseif ($a_bytes < 1048576) {
16 - return round($a_bytes / 1024, 2) . ' KB';
17 - } elseif ($a_bytes < 1073741824) {
18 - return round($a_bytes / 1048576, 2) . ' MB';
19 - } elseif ($a_bytes < 1099511627776) {
20 - return round($a_bytes / 1073741824, 2) . ' GB';
21 - } else {
22 - return round($a_bytes / 1208925819614629174706176, 2) . ' ERROR';
23 - }
24 -}
25 -
26 -add_action('template_redirect', 'wpatt_job_cpt_template');
27 -function wpatt_job_cpt_template()
28 -{
29 - global $wp, $wp_query;
30 - if (have_posts()) {
31 - add_filter('the_content', 'wpatt_job_cpt_template_filter');
32 - } else {
33 - $wp_query->is_404 = true;
34 - }
35 -}
36 -
37 -function wpatt_job_cpt_template_filter($content)
38 -{
39 - global $wp_query;
40 - $jobID = $wp_query->post->ID;
41 - echo get_the_content();
42 - echo '<div style="width:100%;margin:10px 0 10px 0;"><h3>' . get_option('wpatt_option_localization') . '</h3></div>';
43 - $args = array(
44 - 'post_type' => 'attachment',
45 - 'numberposts' => -1,
46 - 'post_status' => null,
47 - 'post_parent' => get_the_ID(),
48 - 'orderby' => 'menu_order',
49 - 'order' => 'desc'
50 - );
51 - $attachments = get_posts($args);
52 - if ($attachments) {
53 - foreach ($attachments as $attachment) {
54 - echo '<style>
55 - ul.post-attachments{list-style:none;margin:0;}
56 - li.post-attachment{background:url(' . plugin_dir_url(__FILE__) . 'icons/document.png) 0 4px no-repeat;padding-left:24px} .post-attachment.mime-imagejpeg,.post-attachment.mime-imagepng{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-image.png)}
57 - .post-attachment.mime-applicationzip{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-zipper.png)}
58 - .post-attachment.mime-applicationpdf{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-pdf.png)}
59 - .post-attachment.mime-applicationvnd-ms-excel{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-excel.png)}
60 - .post-attachment.mime-applicationvnd-openxmlformats-officedocument-spreadsheetml-sheet{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-excel.png)}
61 - .post-attachment.mime-applicationmsword{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-word.png)}
62 - .post-attachment.mime-applicationvnd-openxmlformats-officedocument-wordprocessingml-document{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-word.png)}
63 - </style>';
64 - echo '<ul class="post-attachments">';
65 - $class = "post-attachment mime-" . sanitize_title($attachment->post_mime_type);
66 - echo '<li class="' . $class . '"><a href="' . wp_get_attachment_url($attachment->ID) . '">';
67 - echo $attachment->post_title;
68 - echo '</a> (';
69 - echo wpatt_format_bytes(filesize(get_attached_file($attachment->ID)));
70 - $wpatt_option_showdate_get = get_option('wpatt_option_showdate');
71 - if ($wpatt_option_showdate_get == '1') {
72 - $wpatt_date = new DateTime($attachment->post_date);
73 - echo '<div style="float:right;">' . $wpatt_date->format('d.m.Y') . '</div>';
74 - }
75 - echo ')</li></ul>';
76 - }
77 - }
78 -}
79 -
80 -/* Register Settings */
81 -add_action('admin_init', 'wpatt_reg_settings');
82 -function wpatt_reg_settings()
83 -{
84 - register_setting('wpatt_options_group', 'wpatt_option_showdate', 'intval');
85 - register_setting('wpatt_options_group', 'wpatt_option_localization');
86 - /* Preopulate 'Attachments' */
87 - $wpatt_option_showdate_get = get_option('wpatt_option_showdate');
88 - if (get_option('wpatt_option_localization') == '') {
89 - update_option('wpatt_option_localization', 'Attachments');
90 - }
91 -}
92 -
93 -/* Here starts the code for the option panel */
94 -
95 -add_action('admin_menu', 'wpatt_plugin_menu');
96 -
97 -function wpatt_plugin_menu()
98 -{
99 - add_options_page('WP Attachments - Settings', 'WP Attachments', 'manage_options', 'wpatt-option-page', 'wpatt_plugin_options');
100 -}
101 -
102 -function wpatt_plugin_options()
103 -{
104 - if (!current_user_can('manage_options')) {
105 - wp_die(__('You do not have sufficient permissions to access this page.'));
106 - }
107 -
108 - if (isset($_POST['Submit'])) {
109 - $wpatt_option_localization_get = $_POST["wpatt_option_localization_n"];
110 - update_option('wpatt_option_localization', $wpatt_option_localization_get);
111 -
112 - if (isset($_POST['wpatt_option_showdate_n'])) {
113 - update_option('wpatt_option_showdate', '1');
114 - } else {
115 - update_option('wpatt_option_showdate', '0');
116 - }
117 -
118 - }
119 -
120 - echo '<div class="wrap">';
121 - screen_icon();
122 - echo '<h2>Settings</h2>';
123 - echo '<div id="welcome-panel" class="welcome-panel">';
124 - echo '<form method="post" name="options" target="_self">';
125 - settings_fields('wpatt_option_group');
126 - echo '
127 - <table class="form-table">
128 -
129 - <tr valign="top">
130 - <th scope="row">Label for list header</th>
131 - <td><input type="text" name="wpatt_option_localization_n" value="';
132 - echo get_option('wpatt_option_localization');
133 - echo '" />&nbsp;Insert here the label you want to use for the title of the attachments list. Default "<b>Attachments</b>"</td></tr>';
134 -
135 - echo '<tr><th scope="row">Show date?</th>
136 - <td><input type="checkbox" name="wpatt_option_showdate_n" ';
137 - $wpatt_option_showdate_get = get_option('wpatt_option_showdate');
138 - if ($wpatt_option_showdate_get == '1') {
139 - echo 'checked=\'checked\'';
140 - }
141 - echo '/>&nbsp;Check this if you want to show when the file has been uploaded.</td>';
142 - echo '</tr></table>';
143 -
144 - echo '</table><p class="submit"><input type="submit" name="Submit" value="Update" /></p>';
145 - echo '</form></div></div>';
146 -}
147 -
148 -?>
9 +*/
10 +
11 +
12 +
13 +function wpatt_format_bytes($a_bytes)
14 + {
15 +
16 + if ($a_bytes < 1024)
17 + {
18 +
19 + return $a_bytes . ' B';
20 +
21 + }
22 + elseif ($a_bytes < 1048576)
23 + {
24 +
25 + return round($a_bytes / 1024, 2) . ' KB';
26 +
27 + }
28 + elseif ($a_bytes < 1073741824)
29 + {
30 +
31 + return round($a_bytes / 1048576, 2) . ' MB';
32 +
33 + }
34 + elseif ($a_bytes < 1099511627776)
35 + {
36 +
37 + return round($a_bytes / 1073741824, 2) . ' GB';
38 +
39 + }
40 + else
41 + {
42 +
43 + return round($a_bytes / 1208925819614629174706176, 2) . ' ERROR';
44 +
45 + }
46 +
47 + }
48 +
49 +
50 +add_filter('the_content', 'wpatt_job_cpt_template_filter');
51 +
52 +function wpatt_job_cpt_template_filter($content)
53 + {
54 + global $post;
55 +
56 + $attachments = get_posts(array(
57 + 'post_type' => 'attachment',
58 + 'orderby' => 'menu_order',
59 + 'posts_per_page' => 100,
60 + 'post_parent' => $post->ID
61 + ));
62 +
63 + if ($attachments)
64 + {
65 + $content .= '<div style="width:100%;float:left;margin:10px 0 10px 0;"><h3>' . get_option('wpatt_option_localization') . '</h3>
66 + <style>
67 + ul.post-attachments{list-style:none;margin:0;}
68 + li.post-attachment{background:url(' . plugin_dir_url(__FILE__) . 'icons/document.png) 0 4px no-repeat;padding-left:24px} .post-attachment.mime-imagejpeg,.post-attachment.mime-imagepng,.post-attachment.mime-imagejpeg,.post-attachment.mime-imagegif{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-image.png)}
69 + .post-attachment.mime-applicationzip{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-zipper.png)}
70 + .post-attachment.mime-applicationpdf{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-pdf.png)}
71 + .post-attachment.mime-applicationvnd-ms-excel{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-excel.png)}
72 + .post-attachment.mime-applicationvnd-openxmlformats-officedocument-spreadsheetml-sheet{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-excel.png)}
73 + .post-attachment.mime-applicationmsword{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-word.png)}
74 + .post-attachment.mime-applicationvnd-openxmlformats-officedocument-wordprocessingml-document{background-image:url(' . plugin_dir_url(__FILE__) . 'icons/document-word.png)}
75 + </style><ul class="post-attachments">';
76 +
77 + foreach ($attachments as $attachment)
78 + {
79 +
80 + $wpatt_option_includeimages_get = get_option('wpatt_option_includeimages');
81 + if ($wpatt_option_includeimages_get == '1') {
82 + } else if ( wp_attachment_is_image( $attachment->ID ) ) {
83 + continue;
84 + }
85 +
86 + $class = "post-attachment mime-" . sanitize_title($attachment->post_mime_type);
87 +
88 + $content .= '<li class="' . $class . '"><a href="' . wp_get_attachment_url($attachment->ID) . '">' . $attachment->post_title . '</a> (' . wpatt_format_bytes(filesize(get_attached_file($attachment->ID)));
89 +
90 +
91 + $wpatt_option_showdate_get = get_option('wpatt_option_showdate');
92 +
93 + if ($wpatt_option_showdate_get == '1')
94 + {
95 +
96 + $wpatt_date = new DateTime($attachment->post_date);
97 +
98 + $content .= '<div style="float:right;">' . $wpatt_date->format('d.m.Y') . '</div>';
99 +
100 + }
101 +
102 + $content .= ')</li>';
103 +
104 + }
105 + $content .= '</ul></div>';
106 +
107 + }
108 + return $content;
109 +
110 + }
111 +
112 +
113 +
114 +/* Register Settings */
115 +
116 +add_action('admin_init', 'wpatt_reg_settings');
117 +
118 +function wpatt_reg_settings()
119 + {
120 +
121 + register_setting('wpatt_options_group', 'wpatt_option_showdate', 'intval');
122 +
123 + register_setting('wpatt_options_group', 'wpatt_option_includeimages', 'intval');
124 +
125 + register_setting('wpatt_options_group', 'wpatt_option_localization');
126 +
127 + /* Preopulate 'Attachments' */
128 +
129 + $wpatt_option_showdate_get = get_option('wpatt_option_showdate');
130 +
131 + if (get_option('wpatt_option_localization') == '')
132 + {
133 +
134 + update_option('wpatt_option_localization', 'Attachments');
135 +
136 + }
137 +
138 + }
139 +
140 +
141 +
142 +/* Here starts the code for the option panel */
143 +
144 +
145 +
146 +add_action('admin_menu', 'wpatt_plugin_menu');
147 +
148 +
149 +
150 +function wpatt_plugin_menu()
151 + {
152 +
153 + add_options_page('WP Attachments - Settings', 'WP Attachments', 'manage_options', 'wpatt-option-page', 'wpatt_plugin_options');
154 +
155 + }
156 +
157 +
158 +
159 +function wpatt_plugin_options()
160 + {
161 +
162 + if (!current_user_can('manage_options'))
163 + {
164 +
165 + wp_die(__('You do not have sufficient permissions to access this page.'));
166 +
167 + }
168 +
169 +
170 +
171 + if (isset($_POST['Submit'])) {
172 +
173 + $wpatt_option_localization_get = $_POST["wpatt_option_localization_n"];
174 +
175 + update_option('wpatt_option_localization', $wpatt_option_localization_get);
176 +
177 + if (isset($_POST['wpatt_option_showdate_n'])) {
178 + update_option('wpatt_option_showdate', '1');
179 + } else {
180 + update_option('wpatt_option_showdate', '0');
181 + }
182 +
183 + if (isset($_POST['wpatt_option_includeimages_n'])) {
184 + update_option('wpatt_option_includeimages', '1');
185 + } else {
186 + update_option('wpatt_option_includeimages', '0');
187 + }
188 + }
189 +
190 +
191 +
192 + echo '<div class="wrap">';
193 +
194 + screen_icon();
195 +
196 + echo '<h2>WP Attachments</h2>';
197 + echo '<h3>OPTIONS</h3>';
198 +
199 + echo '<div id="welcome-panel" class="welcome-panel">';
200 +
201 + echo '<form method="post" name="options" target="_self">';
202 +
203 + settings_fields('wpatt_option_group');
204 +
205 + echo '
206 +
207 + <table class="form-table">
208 +
209 +
210 +
211 + <tr valign="top">
212 +
213 + <th scope="row">Label for list header</th>
214 +
215 + <td><input type="text" name="wpatt_option_localization_n" value="';
216 +
217 + echo get_option('wpatt_option_localization');
218 +
219 + echo '" />&nbsp;Insert here the label you want to use for the title of the attachments list. Default "<b>Attachments</b>"</td></tr>';
220 +
221 + echo '<tr><th scope="row">Include Images?</th>
222 + <td><input type="checkbox" name="wpatt_option_includeimages_n" ';
223 + $wpatt_option_includeimages_get = get_option('wpatt_option_includeimages');
224 + if ($wpatt_option_includeimages_get == '1') {
225 + echo 'checked=\'checked\'';
226 + }
227 + echo '/>&nbsp;Check this if you want to include images (.jpg, .jpeg, .gif, .png) from being listed.</td>';
228 + echo '</tr>';
229 +
230 +
231 + echo '<tr><th scope="row">Show date?</th>
232 + <td><input type="checkbox" name="wpatt_option_showdate_n" ';
233 + $wpatt_option_showdate_get = get_option('wpatt_option_showdate');
234 + if ($wpatt_option_showdate_get == '1') {
235 + echo 'checked=\'checked\'';
236 + }
237 + echo '/>&nbsp;Check this if you want to show when the file has been uploaded.</td>';
238 + echo '</tr></table>';
239 +
240 +
241 +
242 + echo '</table><p class="submit"><input type="submit" class="button-primary" name="Submit" value="Update" /></p>';
243 +
244 + echo '</form></div>
245 + <h3>HELP, SUPPORT & FEEDBACK</h3>
246 + <a href="http://wordpress.org/plugins/wp-attachments/" title "WP Attachments Wordpress Plugin>http://wordpress.org/plugins/wp-attachments/</a><br/>
247 + This plugin is continuously developed by Marco Milesi focusing on semplicity, intuitiveness and cleanness. Keep updated :)<br/>
248 + Thank You for using this plugin.</div>';
249 +
250 + }
251 +
252 +?>