<html>
<head>
<title></title>
<style>
.info {
border:1px solid red;
background:#D6E6C6;
color:black;
font-weight:bolder;
padding:3px;
}
.finish {
border:1px solid green;
background:#D6E6C6;
color:black;
font-weight:bolder;
padding:3px;
}
</style>
</head>
<body>
<?php
// http://webdev/siteMessage/example.SiteMessage.php
// Read from Top to the bottom. otherways you may not
// understand this script. though it's quite simple,
// read the comments!!
// thanks.
// INCLUDE NEEDED LIBs
include_once("class.SiteMessage.php");
include_once("class.SiteMessageFolder.php");
include_once("class.SiteMessageException.php");
// CREATE DATABASE AND TABLEs
$config['db']['msg'] = array('hostname'=>'localhost','username'=>'alex','password'=>'acme213','name'=>'siteMessage');
$config['db']['msg']['hostname'] = 'nimda.globatmysql.com';
$config['db']['msg']['username'] = 'snr4rtest';
$config['db']['msg']['password'] = 'test0419';
$config['db']['msg']['name'] = 'snr4r_test';
/***
* CREATE DATABASE THRU YOUR WEB HOST PROVIDERS CPANEL OR TOOL
*/
echo "<div>Please take the time to create the database with the proper user and password for this example to use.<br/><strong>Database:</strong>".$config['db']['msg']['name']."<br/><strong>Username:</strong>".$config['db']['msg']['username']."<br/><strong>Password:</strong>".$config['db']['msg']['password']."<br/></div>";
$db = mysqli_connect($config['db']['msg']['hostname'], $config['db']['msg']['username'], $config['db']['msg']['password'],$config['db']['msg']['name']);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/*
if (mysqli_query($con,"CREATE DATABASE ".$config['db']['msg']['name']))
{
echo "Database created";
} else {
echo "Error creating database: " . mysqli_error($con);
exit();
}
*/
$error = mysqli_query($db,"
CREATE TABLE siteMessage (
sm_id INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT,
sm_thread_id VARCHAR(25) NOT NULL,
sm_sender_id INTEGER NOT NULL,
sm_receiver_id INTEGER NOT NULL,
sm_subject_data TEXT NOT NULL,
sm_message_data TEXT NOT NULL,
sm_message_date DATETIME NOT NULL,
sm_message_read DATETIME NULL,
sm_folder_id INTEGER NOT NULL DEFAULT 0
);
");
if ($error == false) {
echo "<pre class=\"info\">Error creating table siteMessage</pre>";
}
$error = mysqli_query($db,"
CREATE TABLE siteMessageFolders (
sm_folder_id INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT,
sm_user_id INTEGER NOT NULL,
sm_folder_name VARCHAR(50) NOT NULL,
sm_parent_id INTEGER(10) NULL,
sm_folder_date DATETIME NOT NULL,
UNIQUE (sm_user_id,sm_folder_name)
);
");
if ($error == false) {
echo "<pre class=\"info\">Error creating table siteMessageFolders</pre>";
} else {
echo "<pre class=\"info\"> SUCCESS creating tables siteMessage and siteMessageFolders</pre>";
}
//create a thread ID, you can add a prefix to uniqid such as a userID.
echo "Thread ID: ".uniqid('243')."<br/>";
/**
* TRY TO OPEN FOLDER ID 1, IF IT DOESN't EXIST,
* CREATE A NEW FOLDER(INBOX) FOR USERID 1
*
* SiteMessageFolder::open()
* SiteMessageFolder::create()
**/
$myFolder = new SiteMessageFolder($db);
try {
// OPEN
$myFolder->open(1);
echo "<pre class=\"info\">-> opened Folder</pre>";
} catch (FolderNotAvailableException $e) {
echo "<pre class=\"info\">Creating Folder</pre>";
// CREATE
$myFolder->create("INBOX","1");
echo "<pre class=\"info\">-> created Folder</pre>";
} catch (MySqlException $e) {
// DIE BECAUSE OF SQL-ERROR
echo "<br/>SQL Error";
die($e->getMessage());
}
/**
* SOME TESTs
*
* SiteMessageFolder::getName()
* SiteMessageFolder::getDate()
* SiteMessageFolder::hasSubfolder()
* SiteMessageFolder::hasMessage()
**/
echo "<pre>Foldername: ".$myFolder->getName()."</pre>";
echo "<pre>created: ".date("H:i:s d.m.Y", strtotime($myFolder->getDate()))."</pre>";
echo "<pre>Subfolders: ".$myFolder->hasSubfolder()."</pre>";
echo "<pre>Messages: ".$myFolder->hasMessage()."</pre>";
/**
* SOME TESTs
*
* SiteMessageFolder::setName()
**/
try {
switch($myFolder->getName()) {
case "INBOX": echo "<pre class=\"info\">-> renaming folder from INBOX to OUTBOX...</pre>";
$myFolder->setName("OUTBOX");
break;
case "OUTBOX": echo "<pre class=\"info\">-> renaming folder from OUTBOX to INBOX...</pre>";
$myFolder->setName("INBOX");
break;
}
} catch (MySqlException $e) {
die($e->getMessage());
}
/**
* SOME TESTs
*
* SiteMessageFolder::getName()
**/
echo "<pre>Foldername: ".$myFolder->getName()."</pre>";
/**
* Create a Subfolder of Folder #1
*/
echo "<pre class=\"info\">-> creating subfolder</pre>";
$myFolder->create("SUB1",1,1);
try {
$myFolder->open(1);
} catch (FolderNotAvailableException $e) {
die("Error: ".$e->getMessage());
}
/**
* SOME TESTs
*
* SiteMessageFolder::hasSubfolder()
**/
echo "<pre>Subfolders: ".$myFolder->hasSubfolder()."</pre>";
$mySubFolder = $myFolder->getSubfolder(1);
echo "after subFolders Info";
/**
* SOME TESTs ON SUBFOLDER
*
* SiteMessageFolder::getName()
* SiteMessageFolder::getDate()
* SiteMessageFolder::hasSubfolder()
* SiteMessageFolder::hasMessage()
**/
echo "<pre class=\"info\">-> showing subfolder-infos</pre>";
echo "<pre>Foldername: ".$mySubFolder->getName()."</pre>";
echo "<pre>created: ".date("H:i:s d.m.Y", strtotime($mySubFolder->getDate()))."</pre>";
echo "<pre>Subfolders: ".$mySubFolder->hasSubfolder()."</pre>";
echo "<pre>Messages: ".$mySubFolder->hasMessage()."</pre>";
/**
* SOME TESTs
*
* SiteMessage::create()
* SiteMessageFolder::hasMessage()
**/
$myMessage = new SiteMessage($db);
try {
if($myMessage->create(1,1,"This is the subject","This is the text")) {
echo "<pre class=\"info\">-> creating a message</pre>";
}
} catch (MySqlException $e) {
// DIE BECAUSE OF SQL-ERROR
die($e->getMessage());
}
/**
* SOME TESTs
* Move the newly created message into INBOX-Folder (id:1)
*/
echo "<pre class=\"info\">-> moving message to folder INBOX.</pre>";
$myMessage->setFolder(1);
/**
* SOME TESTs
* SiteMessageFolder::hasMessage()
**/
echo "<pre>Messages: ".$myFolder->hasMessage()."</pre>";
/**
* SOME TESTs
*
* SiteMessage::getSender()
* SiteMessage::getReceiver()
* SiteMessage::getSubject()
* SiteMessage::getText()
* SiteMessage::getDate()
**/
echo "<pre class=\"info\">-> show Message-Informations</pre>";
echo "<pre>Sender(id): ".$myMessage->getSender()."</pre>";
echo "<pre>Receiver(id): ".$myMessage->getReceiver()."</pre>";
echo "<pre>Folder(id): ".$myMessage->getFolder()."</pre>";
echo "<pre>Date: ".date("H:i:s m/d/Y", strtotime($myMessage->getDate()))."</pre>";
echo "<pre>Subject: ".$myMessage->getSubject()."</pre>";
echo "<pre>Text: ".$myMessage->getText()."</pre>";
echo "<pre>Thread ID: ".$myMessage->getThreadID()."</pre>";
/**
* SOME TESTS
* Create a reply to the new message, threadID should be the same as the parent/original message.
*/
try {
if($myMessage->create(1,1,"RE: This is the subject","The reply text is this!",$myMessage->getThreadID())) {
echo "<pre class=\"info\">-> creating a reply</pre>";
echo "<pre class=\"info\">-> show Message-Informations</pre>";
echo "<pre>Sender(id): ".$myMessage->getSender()."</pre>";
echo "<pre>Receiver(id): ".$myMessage->getReceiver()."</pre>";
echo "<pre>Folder(id): ".$myMessage->getFolder()."</pre>";
echo "<pre>Date: ".date("H:i:s m/d/Y", strtotime($myMessage->getDate()))."</pre>";
echo "<pre>Subject: ".$myMessage->getSubject()."</pre>";
echo "<pre>Text: ".$myMessage->getText()."</pre>";
echo "<pre>Thread ID: ".$myMessage->getThreadID()."</pre>";
}
} catch (MySqlException $e) {
// DIE BECAUSE OF SQL-ERROR
die($e->getMessage());
}
/**
* SOME TESTs
* Deleting Folder #1
* comment out, to keep all messages, folders, etc.
*/
/*echo "<pre class=\"info\">-> Deleting Folder (id:1) and all Subfolders/Messages</pre>";
$myFolder->delete();
echo "<pre class=\"finish\">That's it. All Messages and Folders have been deleted.
<p>Be inspired </p> Have fun! <p>- Cornelius -</p></pre>";
*/
?>
</body>
</html>
|