1,
'displayonline' => 2,
'displaytitle' => 4,
'displayauthor' => 8,
'displaycreateddate' => 16,
'displayupdateddate' => 32,
'displayprintarticlelink' => 64,
'displayemailarticlelink' => 128,
'displaydescription' => 256,
'displaysmilies' => 512,
'displaycomments' => 1024);
// ############################### SEND ARTICLE ################################
function p2_SendEmail($articleid)
{
global $DB, $categoryid, $sdurl, $p2_language;
$useremail = $_POST['p2_emailfrom'];
$emailto = $_POST['p2_emailto'];
$emailcomment = $_POST['p2_emailcomment'];
// obtain emails
$getemails = str_replace(',', ' ', $emailto); // get rid of commas
$getemails = eregi_replace("[[:space:]]+", " ", $getemails); // get rid of extra spaces
$getemails = trim($getemails); // then trim
$emails = explode(" ", $getemails);
// setup some vars
$invalidemails = 0;
// check if emails are real
for($i = 0; $i < count($emails); $i++)
{
if(!ereg("^([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $emails[$i]))
$invalidemails = 1;
}
if($invalidemails == 1)
$errors[] = $p2_language['invalid_email'];
else
{
// check user email
if(!ereg("^([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $useremail))
$errors[] = $p2_language['invalid_email'];
}
// check if article exists/online
if(!$article = $DB->query_first("SELECT * FROM " . TABLE_PREFIX . "p2_news WHERE articleid = '$articleid'
AND categoryid = '$categoryid' AND (settings & 2) AND (datestart = 0 OR datestart < '" . time() . "')
AND (dateend = 0 OR dateend > '" . time() . "')") )
{
echo $p2_language['article_offline'];
return 0;
}
// send email if no errors
if(!isset($errors))
{
// email headers
$headers = "MIME-Version: 1.0\r \n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r \n";
$headers .= "From: \"$useremail\" <$useremail>\r \n";
$headers .= "Reply-To: \"$useremail\" <$useremail>\r \n";
// email subject
$subject = $article['title'];
// email main message
$message = $sdurl . "index.php?categoryid=" . $categoryid . "&p2_articleid=$articleid \r \n \r \n $emailcomment";
for($i = 0; $i < count($emails); $i++)
{
if(@mail($emails[$i], $subject, $message, $headers))
{
$messagesent = 1;
}
}
if($messagesent == 1)
{
echo $p2_language['email_sent'] . '
' . $article['title'] . '
' . $p2_language['go_back'] . '';
}
else
{
echo $p2_language['email_not_sent'];
}
}
else
{
foreach($errors as $key=>$value)
{
echo $value . '
';
}
p2_EmailArticle($articleid);
}
}
// ############################ EMAIL ARTICLE FORM #############################
function p2_EmailArticle($articleid)
{
global $DB, $categoryid, $inputsize, $p2_language;
// check if article exists/online
if(!$article = $DB->query_first("SELECT * FROM " . TABLE_PREFIX . "p2_news WHERE articleid = '$articleid'
AND categoryid = '$categoryid' AND (settings & 2) AND (datestart = 0 OR datestart < '" . time() . "')
AND (dateend = 0 OR dateend > '" . time() . "')") )
{
echo $p2_language['article_offline'];
return 0;
}
echo '' . $article['title'] . '
' . $p2_language['enter_recipient_email'] . '
';
}
// ######################### INSERT ARTICLE INTO DB ###########################
function p2_InsertArticle()
{
global $DB, $categoryid, $p2_language;
$author = $_POST['p2_author'];
$title = $_POST['p2_title'];
$description = $_POST['p2_description'];
$article = $_POST['p2_article'];
if(strlen($author) == 0)
{
$errors .= $p2_language['enter_name'] . '
';
}
if(strlen($title) == 0)
{
$errors .= $p2_language['enter_title'] . '
';
}
if(strlen($article) == 0)
{
$errors .= $p2_language['enter_article'] . '
';
}
// if no errors insert news, else print error and show submit form
if(!isset($errors))
{
$DB->query("INSERT INTO " . TABLE_PREFIX . "p2_news (categoryid, settings, datecreated, author, title, description, article)
VALUES ($categoryid, 1, '" . time() . "', '$author', '$title', '$description', '$article')");
echo $p2_language['article_submitted'];
$getemail = $DB->query_first("SELECT value FROM " . TABLE_PREFIX . "pluginsettings WHERE pluginid = '3' AND title = 'Article Notification'");
$email = $getemail['value'];
if(strlen($email) > 0)
{
// obtain emails
$getemails = str_replace(',', ' ', $email); // get rid of commas
$getemails = eregi_replace("[[:space:]]+", " ", $getemails); // get rid of extra spaces
$getemails = trim($getemails); // then trim
$emails = explode(" ", $getemails);
$fullname = 'Article Plugin';
$subject = 'New article submitted to your website!';
$message = 'A new article has been submitted to your website.';
$headers = "MIME-Version: 1.0\r \n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r \n";
$headers .= "From: \"$fullname\" <$email>\r \n";
$headers .= "Reply-To: \"$fullname\" <$email>\r \n";
for($i = 0; $i < count($emails); $i++)
{
@mail($emails[$i], $subject, $message, $headers);
}
}
}
else
{
echo '' . $errors . '
';
p2_SubmitArticle($author, $title, $description, $article);
}
}
// ########################### SUBMIT ARTICLE FORM ############################
function p2_SubmitArticle($author, $title, $description, $article)
{
global $categoryid, $userinfo, $inputsize, $p2_language;
echo '';
}
// ############################## DISPLAY ARTICLE ##############################
function p2_DisplayArticle($article)
{
global $DB, $sdurl, $categoryid, $userinfo, $p2_articlebitfield, $p2_language;
// check which page of the article we are on
// this variable needs to be created before displaying the article becuase it's used
// in the description printing area
$currentpage = (isset($_GET['p2_page']) AND ereg("^[0-9]+$", $_GET['p2_page'])) ? $_GET['p2_page'] : 1;
// to prevent blank lines from showing, create a variable that will determine if weed need to break
$displaylinebreaks = false;
// display title?
if($article['settings'] & $p2_articlebitfield['displaytitle'])
{
echo '' . $article['title'] . ' ';
$displaylinebreaks = true;
}
// display author?
if($article['settings'] & $p2_articlebitfield['displayauthor'])
{
echo $p2_language['by'] . ' ' . $article['author'] . '
';
$displaylinebreaks = true;
}
// display published date?
if($article['settings'] & $p2_articlebitfield['displaycreateddate'])
{
echo $p2_language['published'] . ' ' . iif($article['datestart'] != 0, DisplayDate($article['datestart']), DisplayDate($article['datecreated'])) . '';
$displaylinebreaks = true;
}
// display updated date?
if( ($article['settings'] & $p2_articlebitfield['displayupdateddate']) AND ($article['dateupdated'] != 0) )
{
echo $p2_language['updated'] . ' ' . DisplayDate($article['dateupdated']) . '';
$displaylinebreaks = true;
}
// display print article link?
if($article['settings'] & $p2_articlebitfield['displayprintarticlelink'])
{
echo '
' . $p2_language['print'] . ' ' . iif(!($article['settings'] & $p2_articlebitfield['displayemailarticlelink']), '
');
$displaylinebreaks = true;
}
// display email article link?
if($article['settings'] & $p2_articlebitfield['displayemailarticlelink'])
{
echo '
' . $p2_language['email'] . '
';
$displaylinebreaks = true;
}
if($displaylinebreaks)
{
echo '
';
}
// display description?
if(strlen($article['description']))
{
if(!isset($_GET['p2_articleid']))
{
echo iif($article['settings'] & $p2_articlebitfield['displaysmilies'], AddSmilies($article['description']), $article['description']);
}
else if( ($article['settings'] & $p2_articlebitfield['displaydescription']) AND $currentpage == 1)
{
echo iif($article['settings'] & $p2_articlebitfield['displaysmilies'], AddSmilies($article['description']), $article['description']);
}
}
// display article?
if(!strlen($article['description']) OR isset($_GET['p2_articleid']))
{
if(strlen($article['article']))
{
// find out how many pages are in this article
$articlepages = preg_split('/{(pagebreak)\s*(.*?)}/i', $article['article']);
// a few more checks...
if($currentpage == 0 OR $currentpage > count($articlepages))
{
$currentpage = 1;
}
// add smilies to article?
if($article['settings'] & $p2_articlebitfield['displaysmilies'])
{
$articlepages[$currentpage - 1] = AddSmilies($articlepages[$currentpage - 1]);
}
// this preg_replace code was created by shoz: phpfreaks.com/forums/index.php?showuser=14845
echo preg_replace('#(\A[\s]*
]*>[\s]*|' // remove
at beginning of the string
.'
]*>\s*(?=(?:\{pagebreak\}))|' // remove
before {pagebreak}
.'(?<=(?:\{pagebreak\}))\s*
]*>|' // remove
after {pagebreak}
.'
]*>[\s]*\Z)#is', '', $articlepages[$currentpage - 1]); // remove
at end of string
if(count($articlepages) > 1)
{
echo '
| ' . $p2_language['previous'] . ' | '; } if($rows > $limit) { echo '' . $p2_language['next'] . ' | '; } echo '