MongoID
* user_id -> mongoID of the user that posted it
* datetime -> mongodate of when the post was posted
* body -> the text of the post
* level -> access level required to see the post
* comments[] => list of comments
* type -> the type of post, IE picture text, chat etc
*/
/**
* Parses an array of words to find mentions and topic tags then converts them
* @param Entitiy $entity Not used, but otherwise lithium will pass entity into words which makes the program blowup
* @param Mixed $input, either a string, or a spilt array of words (ie an exploded string)
* @return String a string with the topics and mentions converted
*/
public function parse($entity, $input)
{
//If $input is an array, set words to it otherwise, explode it.
$words = (is_array($input)) ? $input : explode(" ", $input);
//Count the number of words
$count = count($words);
//For each word in the array
for ($i = 0; $i < $count; $i++)
{
//If the word begins with a '@' convert it to a mention
if ($words[$i][0] == '@')
{
$words[$i] = $this->convertToMention($words[$i]);
}
//Else if the word beings with a '#' Convert to topic link
else if ($words[$i][0] == '#')
{
$words[$i] = $this->convertToTopic($words[$i]);
}
}
return implode(" ", $words);
}
//TODO: Some sort of security check to make sure
//That the user is ok with receiving message
public function directMessage($entity, $to)
{
//Get the user the message is to
$user = User::find('first', array('conditions' => array('username' => $to)));
//If find() returned a user,
if ($user)
{
//Add the post to their feed,
var_dump($entity->data());
$entity->save();
return $entity->store($user);
}
//If the user wasn't found
return false;
}
/**
* Converts a string with a topic tag(eg: #madoka) to clickable link to the topic eg #madoka
* @param String $input The string with topic tag
* @return String the string with href
*/
public function convertToTopic($input)
{
//Remove the # character from the beginning
$output = substr($input, 1);
//Formats the string and returns it.
return "$input";
}
/**
* converts a mention (eg: @bob) to a clickable link to the user's profile eg #madoka
* @param String $input The string with topic tag
* @return String the string with href
*/
public function convertToMention($input)
{
//Remove the @ character from the beginning
$output = substr($input, 1);
//Formats the string and returns it.
return "$input";
}
}
?>