source: trunk/www.guidonia.net/wp/wp-content/plugins/odlinks/odl_posts.php@ 44

Last change on this file since 44 was 44, checked in by luciano, 14 years ago
File size: 11.2 KB
Line 
1<?php
2
3/*
4 * odl_posts.php
5 * wordpress plugin website directory project
6 * @author Mohammad Forgani
7 * @copyright Copyright 2008, Oh Jung-Su
8 * @version 1.0.0-a
9 * @link http://www.forgani.com
10*/
11
12
13
14$odlinkssettings=get_option('odlinksdata');
15
16function odlinkspost_link(){
17 global $_GET, $_POST, $table_prefix, $wpdb;
18
19 $odlinkssettings=get_option('odlinksdata');
20 $parent=$_GET['parent'];
21 if (!$parent) $parent=0;
22
23 $displayform=true;
24 $tpl=new ODLTemplate();
25
26 $tpl->assign('odl_images', get_bloginfo('wpurl')."/wp-content/plugins/odlinks");
27 //$odl_search_link= get_bloginfo('url')."&odlinksaction=searchlink";
28 //$odl_advanced=odlinkscreate_link("searchlink", array("name"=>'Advanced'));
29 //$tpl->assign('odl_advanced', $odl_advanced);
30 $odl_search_link=odlinkscreate_link("searchform", array());
31 $tpl->assign('odl_search_link', $odl_search_link);
32 $odl_main_link=odlinkscreate_link("index", array("name"=>"Main"));
33 $odl_top_link=odlinkscreate_link("index", array("name"=>$odlinkssettings['page_link_title']));
34 $tpl->assign('odl_top_link', $odl_top_link);
35 $tpl->assign('odl_main_link', $odl_main_link);
36 $tpl->assign('odl_wpurl', get_bloginfo('url'));
37
38 $url=$_POST['odlinksdata']['url'];
39 $email=$_POST['odlinksdata']['email'];
40 $title=$_POST['odlinksdata']['title'];
41 $category=$_POST['odlinksdata']['category'];
42 $description=$_POST['odlinksdata']['description'];
43
44 if ($_POST['odlinkspost_topic']=='yes'){
45 $makepost=true;
46 if (str_replace(" ", "", $email)==''){
47 $msg ="You need to enter email address!";
48 $makepost=false;
49 }
50 if (str_replace(" ", "", $url)==''){
51 $msg ="You must provide an url!";
52 $makepost=false;
53 } else {
54 $sql="SELECT c_domain FROM {$table_prefix}odbanned";
55 $results=$wpdb->get_results($sql);
56 for($i=0; $i<count($results); $i++){
57 $row=$results[$i];
58 if(eregi($row->c_domain,$url)){
59 $msg = "This address that is banned from our directory, please contact administration to resolve this issue: " .get_option('admin_email');
60 $makepost=false;
61 }
62 }
63 }
64
65 if (str_replace(" ", "", $title)==''){
66 $msg ="You must to enter a title!";
67 $makepost=false;
68 }
69
70 if (!$category || str_replace(" ", "", $category)==''){
71 $msg ="You need to select at least one category!";
72 $makepost=false;
73 }
74
75 if (str_replace(" ", "", $description)==''){
76 $msg ="You must provide a description!";
77 $makepost=false;
78 }
79
80 if($odlinkssettings['confirmation_code']=='y'){
81 if (! _odl_captcha::Validate($_POST['odlinksdata']['odl_captcha'])) {
82 $msg="The confirmation code didn't matched.";
83 $makepost=false;
84 }
85 }
86
87 if($url && !eregi("http://",$url)){
88 $url='http://'.$url;
89 }
90
91 if ($makepost==true){
92 $sql="SELECT * FROM {$table_prefix}odnew_links";
93 $results=$wpdb->get_results($sql);
94 if (!empty($results))
95 foreach ($results as $result) {
96 if($result->n_url == $url){
97 $msg="This URL was already submitted. We will check it as soon as possible.";
98 $makepost=false;
99 }
100 }
101
102 $sql="SELECT * FROM {$table_prefix}odlinks";
103 $results=$wpdb->get_results($sql);
104 if (!empty($results)) {
105 // check Double Post
106 foreach ($results as $result) {
107 if($result->l_url == $url){
108 $msg="This URL is already listed in our directory.";
109 $makepost=false;
110 }
111 }
112 }
113 if ($makepost==true){
114 mysql_query("INSERT INTO {$table_prefix}odnew_links (n_url, n_title, n_description, n_email, n_category) VALUES ('$url', '$title', '$description', '$email', $category)");
115 $msg="<font color=\"green\">Your URL was sucessfully submitted for editor review!<p>Feel free to submit another URL.</font><p>&nbsp;</p>";
116 $out=_odl_email_notifications($url, $title, $description, $email, $category);
117 $displayform=false;
118 } else {
119 $displayform=true;
120 }
121 }
122 }
123
124 if ($displayform==true){
125 $space="";
126 if($odlinkssettings['confirmation_code']=='y'){
127 $aFonts=array(ABSPATH."wp-content/plugins/odlinks/includes/fonts/arial.ttf");
128 $oVisualCaptcha=new _odl_captcha($aFonts);
129 $captcha=rand(1, 50).".png";
130 $oVisualCaptcha->create(ABSPATH."wp-content/plugins/odlinks/includes/Smarty/cache/".$captcha);
131$confirm='<tr><td class="odl_label_right">Confirm: </td><td><img src="'.get_bloginfo('wpurl').'/wp-content/plugins/odlinks/includes/Smarty/cache/' .$captcha.'" alt="ConfirmCode" align="middle"/></td></tr>';
132
133$confirm .= '<tr><td></td><td><input type="text" name="odlinksdata[odl_captcha]" id="odlinksdata[odl_captcha]" size="10"></td></tr>';
134
135 $tpl->assign('confirm',$confirm);
136 }
137
138 for ($x=0; $x < $lev; $x++) {
139 $space .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
140 }
141
142 $sql="SELECT * FROM {$table_prefix}odcategories WHERE c_parent='$parent' ORDER BY c_title ASC";
143 $categories=$wpdb->get_results($sql);
144 for ($i=0; $i<count($categories); $i++){
145 $row=$categories[$i];
146 $sql="SELECT COUNT(l_id) as count FROM {$table_prefix}odlinks WHERE l_hide='visible' AND l_c_id='".$row->c_id."'";
147 $result=$wpdb->get_row($sql, ARRAY_A);
148 $links_num=$result['count'];
149 $id=intval($row->c_id);
150 $title=$row->c_title;
151 $option .= "<option value=\"$id\">$space$title ($links_num)</option>\n";
152 }
153
154 $tpl->assign('categories',$option);
155 $tpl->assign('error','<font color="red">'.$msg.'</font>');
156 $tpl->assign('url',$url);
157 $tpl->assign('title',$title);
158 $tpl->assign('description',$description);
159 $tpl->assign('email',$email);
160
161 } else {
162 odlinksdisplay_index($msg);
163 }
164 if ($odlinkssettings[odlinksshow_credits] == 'y') {
165 $credit='Open Directory Links Powered By <a href="http://www.forgani.com/" target="_blank">4gani</a> Version '.$odlinksversion;
166 $tpl->assign('odl_credit_line', $credit);
167 }
168
169 list($gAd, $top, $btn)=get_odl_GADlink();
170 if ($gAd) {
171 $code='<div class="odl_googleAd">'.$gAd.'</div>';
172 $tpl->assign('googletop',$top);
173 $tpl->assign('googlebtn',$btn);
174 $tpl->assign('googleAd',$code);
175 }
176
177 odlinks_footer($tpl);
178 $tpl->display('addurl.tpl');
179} //odlinkspost_link
180
181
182function odlinkssend_link(){
183 global $_GET, $_POST, $table_prefix, $wpdb;
184
185 $odlinkssettings=get_option('odlinksdata');
186 $id=$_GET['id'];
187 $sql="SELECT * FROM {$table_prefix}odlinks WHERE l_id=".$id;
188 $results=$wpdb->get_results($sql);
189 if (!empty($results)) {
190 foreach ($results as $result) {
191 $description=$result->l_description;
192 $name=$result->l_name;
193 $title=$result->l_title;
194 $url=$result->l_url;
195 }
196 }
197 $displayform=true;
198 $tpl=new ODLTemplate();
199 $tpl->assign('title', $title);
200 $tpl->assign('description', $description);
201 $tpl->assign('odl_images', get_bloginfo('wpurl')."/wp-content/plugins/odlinks");
202 //$odl_advanced=odlinkscreate_link("searchlink", array("name"=>'Advanced'));
203 //$tpl->assign('odl_advanced', $odl_advanced);
204 $odl_search_link=odlinkscreate_link("searchform", array());
205 $tpl->assign('odl_search_link', $odl_search_link);
206 $odl_main_link=odlinkscreate_link("index", array("name"=>"Main"));
207 $odl_top_link=odlinkscreate_link("index", array("name"=>$odlinkssettings['page_link_title']));
208 $tpl->assign('odl_top_link', $odl_top_link);
209 $tpl->assign('odl_main_link', $odl_main_link);
210 $tpl->assign('odl_wpurl', get_bloginfo('url'));
211
212 if ($_POST['odlinks_send_link']=='yes'){
213 $sendAd=true;
214 $yourname=$_POST['odlinksdata'][yourname];
215 $mailfrom=$_POST['odlinksdata'][mailfrom];
216 $mailto=$_POST['odlinksdata'][mailto];
217 if (!eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}$", $_POST['odlinksdata'][mailto])){
218 $msg='_INVALIDEMAIL2';
219 $sendAd=false;
220 }
221 if($odlinkssettings['confirmation_code']=='y'){
222 if (! _odl_captcha::Validate($_POST['odlinksdata']['odl_captcha'])) {
223 $msg="The confirmation code didn't matched.";
224 $sendAd=false;
225 }
226 }
227 if ($sendAd == true) {
228 $displayform=false;
229 $message="Dear ".$_POST['odlinksdata'][fname]."<br>";
230 $message .= "Your friend ".$yourname." send you this interesting website about <b>".$title."</b><br><br>";
231 $message .= 'links detail: '.$description."<BR>";
232 $message .= 'link: '.$url;
233 $message .= '<BR><BR><HR>Link Directory Sites '.get_bloginfo('wpurl')."/?page_id=".$pageinfo["ID"].' and Service';
234 $txt=odl_html2text($message);
235 $from="From: ".$yourname."<" .$mailfrom.">";
236 $from .= "Content-Type: text/html";
237 $sub="your friend ".$yourname." sent you an interesting website ;-)";
238 $email_status=_odl_send_email($mailto, $sub, $txt, $from); //, $from
239 if ($email_status[0] == false) {
240 $msg=$email_status[1];
241 $sendAd=false;
242 } else {
243 odlinksdisplay_index($email_status[1]);
244 }
245 }
246 } else {
247 $displayform=true;
248 }
249
250 if ($displayform==true){
251 if($odlinkssettings['confirmation_code']=='y'){
252 $aFonts=array(ABSPATH."wp-content/plugins/odlinks/includes/fonts/arial.ttf");
253 $oVisualCaptcha=new _odl_captcha($aFonts);
254 $captcha=rand(1, 50).".png";
255 $oVisualCaptcha->create(ABSPATH."wp-content/plugins/odlinks/includes/Smarty/cache/".$captcha);
256$confirm='<tr><td class="odl_label_right">Confirm: </td><td><img src="'.get_bloginfo('wpurl').'/wp-content/plugins/odlinks/includes/Smarty/cache/' .$captcha.'" alt="ConfirmCode" align="middle"/></td></tr>';
257
258$confirm .= '<tr><td></td><td><input type="text" name="odlinksdata[odl_captcha]" id="odlinksdata[odl_captcha]" size="10"></td></tr>';
259
260 $tpl->assign('confirm',$confirm);
261 }
262 $tpl->assign('error','<font color="red">'.$msg.'</font>');
263 $tpl->assign('yourname',$yourname);
264 $tpl->assign('mailfrom',$mailfrom);
265 $tpl->assign('mailto',$mailto);
266 $tpl->assign('fname',$fname);
267 } else {
268 odlinksdisplay_index($msg);
269 }
270 if ($odlinkssettings[odlinksshow_credits] == 'y') {
271 $credit='Open Directory Links Powered By <a href="http://www.forgani.com/" target="_blank">4gani</a> Version '.$odlinksversion;
272 $tpl->assign('odl_credit_line', $credit);
273 }
274
275 list($gAd, $top, $btn)=get_odl_GADlink();
276 if ($gAd) {
277 $code='<div class="odl_googleAd">'.$gAd.'</div>';
278 $tpl->assign('googletop',$top);
279 $tpl->assign('googlebtn',$btn);
280 $tpl->assign('googleAd',$code);
281 }
282
283 odlinks_footer($tpl);
284 $tpl->display('sendurl.tpl');
285}
286
287
288
289# EMAIL ROUTINE
290function _odl_send_email($mailto, $mailsubject, $mailtext, $from) {
291 global $lang;
292 $email_status=array();
293 $email=wp_mail($mailto, $mailsubject, $mailtext, $from);
294 if ($email == false) {
295 $email_status[0]=false;
296 $email_status[1]="The email could not be sent!";
297 } else {
298 $email_status[0]=true;
299 $email_status[1]="The email sent successfully!";
300 }
301 return $email_status;
302}
303
304
305
306# NOTIFICATION EMAILS
307function _odl_email_notifications($url, $title, $description, $email, $category){
308 global $lang, $PHP_SELF;
309
310 $odlinkssettings=get_option('odlinksdata');
311 $out='';
312 $eol="\r\n";
313
314 # notify admin?
315 $msg='';
316
317 $msg.= sprintf(__('New Post, '.date("j-M-Y, l").' and is waiting for your Approval on your site %s:'), get_option('blogname')).$eol;
318 $msg.= " Please visit the admin panel";
319 $msg .= $eol."WebSite: ".$url;
320 $msg .= $eol."Title: ".$title;
321 $msg .= $eol."Description: ".$description;
322 $msg .= $eol."Email: ".$email;
323 $msg .= $eol."Category: ".$category.$eol;
324 # admin message
325 $url = admin_url("admin.php?page=odlinks&odlinks_admin_page_arg=odlinksposts&odlinks_admin_action=approvelinks");
326 $msg .= $eol."Approve or delete it: ".$url.$eol;
327 //$msg.= $lang['_FROM'].': '.$subject.$eol;
328 $adminStruct=get_userdata($ADMINID);
329 $email_status=_odl_send_email(get_option('admin_email'), get_bloginfo('name').': '.'A new (ODL)post is waiting for your Approval', $msg, '');
330 return $email_status;
331}
332
333
334?>
Note: See TracBrowser for help on using the repository browser.