array('keys' => array('ToUserId' => 'id'))); /** * 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"; } } ?>