/** * Set your profile picture * * @param string $jid * @param string $filepath * URL or localpath to image file */ protected function sendSetPicture($jid, $filepath) { if (stripos($filepath, 'http') !== false && !preg_match('/\\s/', $filepath)) { $extension = end(explode(".", $filepath)); $newImageName = rand(0, 100000); $imagePath = static::PICTURES_FOLDER . "/" . $newImageName . ".jpg"; if ($extension == 'jpg') { copy($filepath, $imagePath); $filepath = $imagePath; } } preprocessProfilePicture($filepath); $fp = @fopen($filepath, "r"); if ($fp) { $data = fread($fp, filesize($filepath)); if ($data) { //this is where the fun starts $picture = new ProtocolNode("picture", null, null, $data); $icon = createIconGD($filepath, 96, true); $thumb = new ProtocolNode("picture", array("type" => "preview"), null, $icon); $hash = array(); $nodeID = $this->createMsgId("setphoto"); $hash["id"] = $nodeID; $hash["to"] = $this->getJID($jid); $hash["type"] = "set"; $hash["xmlns"] = "w:profile:picture"; $node = new ProtocolNode("iq", $hash, array($picture, $thumb), null); $this->sendNode($node); $this->waitForServer($nodeID); } } }
/** * Set your profile picture * * @param string $jid * @param string $filepath * URL or localpath to image file */ protected function sendSetPicture($jid, $filepath) { preprocessProfilePicture($filepath); $fp = @fopen($filepath, "r"); if ($fp) { $data = fread($fp, filesize($filepath)); if ($data) { //this is where the fun starts $picture = new ProtocolNode("picture", null, null, $data); $icon = createIconGD($filepath, 96, true); $thumb = new ProtocolNode("picture", array("type" => "preview"), null, $icon); $hash = array(); $nodeID = $this->createMsgId("setphoto"); $hash["id"] = $nodeID; $hash["to"] = $this->getJID($jid); $hash["type"] = "set"; $hash["xmlns"] = "w:profile:picture"; $node = new ProtocolNode("iq", $hash, array($picture, $thumb), null); $this->sendNode($node); $this->waitForServer($nodeID); } } }
/** * Set your profile picture. * * @param string $jid * @param string $filepath URL or localpath to image file */ protected function sendSetPicture($jid, $filepath) { $nodeID = $this->createIqId(); $data = preprocessProfilePicture($filepath); $preview = createIconGD($filepath, 96, true); $picture = new ProtocolNode('picture', ['type' => 'image'], null, $data); $preview = new ProtocolNode('picture', ['type' => 'preview'], null, $preview); $node = new ProtocolNode('iq', ['id' => $nodeID, 'to' => $this->getJID($jid), 'type' => 'set', 'xmlns' => 'w:profile:picture'], [$picture, $preview], null); $this->sendNode($node); }
/** * Set your profile picture * * @param string $jid * @param string $filepath URL or localpath to image file */ protected function sendSetPicture($jid, $filepath) { $nodeID = $this->createIqId(); $data = preprocessProfilePicture($filepath); $preview = createIconGD($filepath, 96, true); $picture = new ProtocolNode("picture", array("type" => "image"), null, $data); $preview = new ProtocolNode("picture", array("type" => "preview"), null, $preview); $node = new ProtocolNode("iq", array('id' => $nodeID, 'to' => $this->getJID($jid), 'type' => 'set', 'xmlns' => 'w:profile:picture'), array($picture, $preview), null); $this->sendNode($node); $this->waitForServer($nodeID); }
/** * Set your profile picture * * @param string $jid * @param string $filepath * URL or localpath to image file */ protected function sendSetPicture($jid, $filepath) { $data = preprocessProfilePicture($filepath); $preview = createIconGD($filepath, 96, true); $picture = new ProtocolNode("picture", array("type" => "image"), null, $data); $preview = new ProtocolNode("picture", array("type" => "preview"), null, $preview); $hash = array(); $nodeID = $this->createMsgId("setphoto"); $hash["id"] = $nodeID; $hash["to"] = $this->getJID($jid); $hash["type"] = "set"; $hash["xmlns"] = "w:profile:picture"; $node = new ProtocolNode("iq", $hash, array($picture, $preview), null); $this->sendNode($node); $this->waitForServer($nodeID); }