当前位置: 首页>>代码示例>>PHP>>正文


PHP XMLStringer类代码示例

本文整理汇总了PHP中XMLStringer的典型用法代码示例。如果您正苦于以下问题:PHP XMLStringer类的具体用法?PHP XMLStringer怎么用?PHP XMLStringer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了XMLStringer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: asString

 function asString()
 {
     if (!empty($this->formatted)) {
         $xs = new XMLStringer(true);
         $xs->elementStart('poco:address');
         $xs->element('poco:formatted', null, common_xml_safe_str($this->formatted));
         $xs->elementEnd('poco:address');
         return $xs->getString();
     }
     return null;
 }
开发者ID:stevertiqo,项目名称:StatusNet,代码行数:11,代码来源:pocoaddress.php

示例2: asString

 function asString()
 {
     $attribs = array();
     if ($this->term !== null) {
         $attribs['term'] = $this->term;
     }
     if ($this->scheme !== null) {
         $attribs['scheme'] = $this->scheme;
     }
     if ($this->label !== null) {
         $attribs['label'] = $this->label;
     }
     $xs = new XMLStringer();
     $xs->element('category', $attribs);
     return $xs->asString();
 }
开发者ID:himmelex,项目名称:NTW,代码行数:16,代码来源:atomcategory.php

示例3: asString

 function asString()
 {
     $xs = new XMLStringer(true);
     $xs->elementStart('poco:urls');
     $xs->element('poco:type', null, $this->type);
     $xs->element('poco:value', null, $this->value);
     if (!empty($this->primary)) {
         $xs->element('poco:primary', null, 'true');
     }
     $xs->elementEnd('poco:urls');
     return $xs->getString();
 }
开发者ID:stevertiqo,项目名称:StatusNet,代码行数:12,代码来源:pocourl.php

示例4: toXML

 public function toXML($env)
 {
     $xs = new XMLStringer();
     $xs->startXML();
     $xs->elementStart('me:env', array('xmlns:me' => MagicEnvelope::NS));
     $xs->element('me:data', array('type' => $env['data_type']), $env['data']);
     $xs->element('me:encoding', null, $env['encoding']);
     $xs->element('me:alg', null, $env['alg']);
     $xs->element('me:sig', null, $env['sig']);
     $xs->elementEnd('me:env');
     $string = $xs->getString();
     common_debug($string);
     return $string;
 }
开发者ID:Br3nda,项目名称:statusnet-debian,代码行数:14,代码来源:magicenvelope.php

示例5: format_entry

 /**
  * extra information for XMPP messages, as defined by Twitter
  *
  * @param Profile $profile Profile of the sending user
  * @param Notice  $notice  Notice being sent
  *
  * @return string Extra information (Atom, HTML, addresses) in string format
  */
 protected function format_entry(Notice $notice)
 {
     $profile = $notice->getProfile();
     $entry = $notice->asAtomEntry(true, true);
     $xs = new XMLStringer();
     $xs->elementStart('html', array('xmlns' => 'http://jabber.org/protocol/xhtml-im'));
     $xs->elementStart('body', array('xmlns' => 'http://www.w3.org/1999/xhtml'));
     $xs->element('a', array('href' => $profile->profileurl), $profile->nickname);
     try {
         $parent = $notice->getParent();
         $orig_profile = $parent->getProfile();
         $orig_profurl = $orig_profile->getUrl();
         $xs->text(" => ");
         $xs->element('a', array('href' => $orig_profurl), $orig_profile->nickname);
         $xs->text(": ");
     } catch (InvalidUrlException $e) {
         $xs->text(sprintf(' => %s', $orig_profile->nickname));
     } catch (NoParentNoticeException $e) {
         $xs->text(": ");
     }
     if (!empty($notice->rendered)) {
         $notice->rendered = str_replace("\t", "", $notice->rendered);
         $xs->raw($notice->rendered);
     } else {
         $xs->raw(common_render_content($notice->content, $notice));
     }
     $xs->text(" ");
     $xs->element('a', array('href' => common_local_url('conversation', array('id' => $notice->conversation)) . '#notice-' . $notice->id), sprintf(_m('[%u]'), $notice->id));
     $xs->elementEnd('body');
     $xs->elementEnd('html');
     $html = $xs->getString();
     return $html . ' ' . $entry;
 }
开发者ID:phpsource,项目名称:gnu-social,代码行数:41,代码来源:XmppPlugin.php

示例6: showContent

 /**
  * Show version information
  *
  * @return void
  */
 function showContent()
 {
     $this->elementStart('p');
     // TRANS: Content part of StatusNet version page.
     // TRANS: %1$s is the engine name (StatusNet) and %2$s is the StatusNet version.
     $this->raw(sprintf(_('This site is powered by %1$s version %2$s, ' . 'Copyright 2008-2011 StatusNet, Inc. ' . 'and contributors.'), XMLStringer::estring('a', array('href' => 'http://status.net/'), _('StatusNet')), STATUSNET_VERSION));
     $this->elementEnd('p');
     // TRANS: Header for StatusNet contributors section on the version page.
     $this->element('h2', null, _('Contributors'));
     sort($this->contributors);
     $this->element('p', null, implode(', ', $this->contributors));
     // TRANS: Header for StatusNet license section on the version page.
     $this->element('h2', null, _('License'));
     $this->element('p', null, _('StatusNet is free software: you can redistribute it and/or modify ' . 'it under the terms of the GNU Affero General Public License as published by ' . 'the Free Software Foundation, either version 3 of the License, or ' . '(at your option) any later version.'));
     $this->element('p', null, _('This program is distributed in the hope that it will be useful, ' . 'but WITHOUT ANY WARRANTY; without even the implied warranty of ' . 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the ' . 'GNU Affero General Public License for more details.'));
     $this->elementStart('p');
     // TRANS: Content part of StatusNet version page.
     // TRANS: %s is a link to the AGPL license with link description "http://www.gnu.org/licenses/agpl.html".
     $this->raw(sprintf(_('You should have received a copy of the GNU Affero General Public License ' . 'along with this program.  If not, see %s.'), XMLStringer::estring('a', array('href' => 'http://www.gnu.org/licenses/agpl.html'), 'http://www.gnu.org/licenses/agpl.html')));
     $this->elementEnd('p');
     // XXX: Theme information?
     if (count($this->pluginVersions)) {
         // TRANS: Header for StatusNet plugins section on the version page.
         $this->element('h2', null, _('Plugins'));
         $this->elementStart('table', array('id' => 'plugins_enabled'));
         $this->elementStart('thead');
         $this->elementStart('tr');
         // TRANS: Column header for plugins table on version page.
         $this->element('th', array('id' => 'plugin_name'), _m('HEADER', 'Name'));
         // TRANS: Column header for plugins table on version page.
         $this->element('th', array('id' => 'plugin_version'), _m('HEADER', 'Version'));
         // TRANS: Column header for plugins table on version page.
         $this->element('th', array('id' => 'plugin_authors'), _m('HEADER', 'Author(s)'));
         // TRANS: Column header for plugins table on version page.
         $this->element('th', array('id' => 'plugin_description'), _m('HEADER', 'Description'));
         $this->elementEnd('tr');
         $this->elementEnd('thead');
         $this->elementStart('tbody');
         foreach ($this->pluginVersions as $plugin) {
             $this->elementStart('tr');
             if (array_key_exists('homepage', $plugin)) {
                 $this->elementStart('th');
                 $this->element('a', array('href' => $plugin['homepage']), $plugin['name']);
                 $this->elementEnd('th');
             } else {
                 $this->element('th', null, $plugin['name']);
             }
             $this->element('td', null, $plugin['version']);
             if (array_key_exists('author', $plugin)) {
                 $this->element('td', null, $plugin['author']);
             }
             if (array_key_exists('rawdescription', $plugin)) {
                 $this->elementStart('td');
                 $this->raw($plugin['rawdescription']);
                 $this->elementEnd('td');
             } else {
                 if (array_key_exists('description', $plugin)) {
                     $this->element('td', null, $plugin['description']);
                 }
             }
             $this->elementEnd('tr');
         }
         $this->elementEnd('tbody');
         $this->elementEnd('table');
     }
 }
开发者ID:Grasia,项目名称:bolotweet,代码行数:71,代码来源:version.php

示例7: toXML

 /**
  * Create an <me:env> XML representation of the envelope.
  *
  * @return string representation of XML document
  */
 public function toXML(Profile $target = null, $flavour = null)
 {
     $xs = new XMLStringer();
     $xs->startXML();
     // header, to point out it's not HTML or anything...
     if (Event::handle('StartMagicEnvelopeToXML', array($this, $xs, $flavour, $target))) {
         // fall back to our default, normal Magic Envelope XML.
         // the $xs element _may_ have had elements added, or could get in the end event
         $xs->elementStart('me:env', array('xmlns:me' => self::NS));
         $xs->element('me:data', array('type' => $this->data_type), $this->data);
         $xs->element('me:encoding', null, $this->encoding);
         $xs->element('me:alg', null, $this->alg);
         $xs->element('me:sig', null, $this->getSignature());
         $xs->elementEnd('me:env');
         Event::handle('EndMagicEnvelopeToXML', array($this, $xs, $flavour, $target));
     }
     return $xs->getString();
 }
开发者ID:bashrc,项目名称:gnusocial-debian,代码行数:23,代码来源:magicenvelope.php

示例8: handle

 /**
  * Send a summary email to the user
  *
  * @param mixed $object
  * @return boolean true on success, false on failure
  */
 function handle($user_id)
 {
     // Skip if they've asked not to get summaries
     $ess = Email_summary_status::staticGet('user_id', $user_id);
     if (!empty($ess) && !$ess->send_summary) {
         common_log(LOG_INFO, sprintf('Not sending email summary for user %s by request.', $user_id));
         return true;
     }
     $since_id = null;
     if (!empty($ess)) {
         $since_id = $ess->last_summary_id;
     }
     $user = User::staticGet('id', $user_id);
     if (empty($user)) {
         common_log(LOG_INFO, sprintf('Not sending email summary for user %s; no such user.', $user_id));
         return true;
     }
     if (empty($user->email)) {
         common_log(LOG_INFO, sprintf('Not sending email summary for user %s; no email address.', $user_id));
         return true;
     }
     $profile = $user->getProfile();
     if (empty($profile)) {
         common_log(LOG_WARNING, sprintf('Not sending email summary for user %s; no profile.', $user_id));
         return true;
     }
     $stream = new InboxNoticeStream($user, $user->getProfile());
     $notice = $stream->getNotices(0, self::MAX_NOTICES, $since_id);
     if (empty($notice) || $notice->N == 0) {
         common_log(LOG_WARNING, sprintf('Not sending email summary for user %s; no notices.', $user_id));
         return true;
     }
     // XXX: This is risky fingerpoken in der objektvars, but I didn't feel like
     // figuring out a better way. -ESP
     $new_top = null;
     if ($notice instanceof ArrayWrapper) {
         $new_top = $notice->_items[0]->id;
     }
     // TRANS: Subject for e-mail.
     $subject = sprintf(_m('Your latest updates from %s'), common_config('site', 'name'));
     $out = new XMLStringer(true);
     $out->elementStart('html');
     $out->elementStart('head');
     $out->element('title', null, $subject);
     $out->elementEnd('head');
     $out->elementStart('body');
     $out->elementStart('div', array('width' => '100%', 'style' => 'background-color: #ffffff; border: 4px solid #4c609a; padding: 10px;'));
     $out->elementStart('div', array('style' => 'color: #ffffff; background-color: #4c609a; font-weight: bold; margin-bottom: 10px; padding: 4px;'));
     // TRANS: Text in e-mail summary.
     // TRANS: %1$s is the StatusNet sitename, %2$s is the recipient's profile name.
     $out->raw(sprintf(_m('Recent updates from %1$s for %2$s:'), common_config('site', 'name'), $profile->getBestName()));
     $out->elementEnd('div');
     $out->elementStart('table', array('width' => '550px', 'style' => 'border: none; border-collapse: collapse;', 'cellpadding' => '6'));
     while ($notice->fetch()) {
         $profile = Profile::staticGet('id', $notice->profile_id);
         if (empty($profile)) {
             continue;
         }
         $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
         $out->elementStart('tr');
         $out->elementStart('td', array('width' => AVATAR_STREAM_SIZE, 'height' => AVATAR_STREAM_SIZE, 'align' => 'left', 'valign' => 'top', 'style' => 'border-bottom: 1px dotted #C5CEE3; padding: 10px 6px 10px 6px;'));
         $out->element('img', array('src' => $avatar ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE), 'width' => AVATAR_STREAM_SIZE, 'height' => AVATAR_STREAM_SIZE, 'alt' => $profile->getBestName()));
         $out->elementEnd('td');
         $out->elementStart('td', array('align' => 'left', 'valign' => 'top', 'style' => 'border-bottom: 1px dotted #C5CEE3; padding: 10px 6px 10px 6px;'));
         $out->element('a', array('href' => $profile->profileurl), $profile->nickname);
         $out->text(' ');
         $out->raw($notice->rendered);
         $out->elementStart('div', array('style' => 'font-size: 0.8em; padding-top: 4px;'));
         $noticeurl = $notice->bestUrl();
         // above should always return an URL
         assert(!empty($noticeurl));
         $out->elementStart('a', array('rel' => 'bookmark', 'href' => $noticeurl));
         $dt = common_date_iso8601($notice->created);
         $out->element('abbr', array('style' => 'border-bottom: none;', 'title' => $dt), common_date_string($notice->created));
         $out->elementEnd('a');
         if ($notice->hasConversation()) {
             $conv = Conversation::staticGet('id', $notice->conversation);
             $convurl = $conv->uri;
             if (!empty($convurl)) {
                 $out->text(' ');
                 $out->element('a', array('href' => $convurl . '#notice-' . $notice->id), _m('in context'));
             }
         }
         $out->elementEnd('div');
         $out->elementEnd('td');
         $out->elementEnd('tr');
     }
     $out->elementEnd('table');
     // TRANS: Link text for link to e-mail settings.
     // TRANS: %1$s is a link to the e-mail settings, %2$s is the StatusNet sitename.
     $out->raw("<p>" . sprintf(_m('<a href="%1$s">change your email settings for %2$s</a>'), common_local_url('emailsettings'), common_config('site', 'name')) . "</p>");
     $out->elementEnd('div');
     $out->elementEnd('body');
     $out->elementEnd('html');
//.........这里部分代码省略.........
开发者ID:Grasia,项目名称:bolotweet,代码行数:101,代码来源:useremailsummaryhandler.php

示例9: showRepeat

 /**
  * show a link to the author of repeat
  *
  * @return void
  */
 function showRepeat()
 {
     if (!empty($this->repeat)) {
         // FIXME: this code is almost identical to default; need to refactor
         $attrs = array('href' => $this->profile->profileurl, 'class' => 'url');
         if (!empty($this->profile->fullname)) {
             $attrs['title'] = $this->profile->getFancyName();
         }
         $this->out->elementStart('span', 'repeat');
         $text_link = XMLStringer::estring('a', $attrs, $this->profile->nickname);
         // TRANS: Link to the author of a repeated notice. %s is a linked nickname.
         $this->out->raw(sprintf(_('Repeat of %s'), $text_link));
         $this->out->elementEnd('span');
     }
 }
开发者ID:Grasia,项目名称:bolotweet,代码行数:20,代码来源:showstream.php

示例10: toXML

 /**
  * Create an <me:env> XML representation of the envelope.
  *
  * @return string representation of XML document
  */
 public function toXML()
 {
     $xs = new XMLStringer();
     $xs->startXML();
     $xs->elementStart('me:env', array('xmlns:me' => self::NS));
     $xs->element('me:data', array('type' => $this->data_type), $this->data);
     $xs->element('me:encoding', null, $this->encoding);
     $xs->element('me:alg', null, $this->alg);
     $xs->element('me:sig', null, $this->getSignature());
     $xs->elementEnd('me:env');
     $string = $xs->getString();
     return $string;
 }
开发者ID:phpsource,项目名称:gnu-social,代码行数:18,代码来源:magicenvelope.php

示例11: notify

 /**
  * Send an Activity Streams notification to the remote Salmon endpoint,
  * if so configured.
  *
  * @param Profile $actor  Actor who did the activity
  * @param string  $verb   Activity::SUBSCRIBE or Activity::JOIN
  * @param Object  $object object of the action; must define asActivityNoun($tag)
  */
 public function notify($actor, $verb, $object = null, $target = null)
 {
     if (!$actor instanceof Profile) {
         $type = gettype($actor);
         if ($type == 'object') {
             $type = get_class($actor);
         }
         // TRANS: Server exception.
         // TRANS: %1$s is the method name the exception occured in, %2$s is the actor type.
         throw new ServerException(sprintf(_m('Invalid actor passed to %1$s: %2$s.'), __METHOD__, $type));
     }
     if ($object == null) {
         $object = $this;
     }
     if ($this->salmonuri) {
         $text = 'update';
         $id = TagURI::mint('%s:%s:%s', $verb, $actor->getURI(), common_date_iso8601(time()));
         // @todo FIXME: Consolidate all these NS settings somewhere.
         $attributes = array('xmlns' => Activity::ATOM, 'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/', 'xmlns:thr' => 'http://purl.org/syndication/thread/1.0', 'xmlns:georss' => 'http://www.georss.org/georss', 'xmlns:ostatus' => 'http://ostatus.org/schema/1.0', 'xmlns:poco' => 'http://portablecontacts.net/spec/1.0', 'xmlns:media' => 'http://purl.org/syndication/atommedia');
         $entry = new XMLStringer();
         $entry->elementStart('entry', $attributes);
         $entry->element('id', null, $id);
         $entry->element('title', null, $text);
         $entry->element('summary', null, $text);
         $entry->element('published', null, common_date_w3dtf(common_sql_now()));
         $entry->element('activity:verb', null, $verb);
         $entry->raw($actor->asAtomAuthor());
         $entry->raw($actor->asActivityActor());
         $entry->raw($object->asActivityNoun('object'));
         if ($target != null) {
             $entry->raw($target->asActivityNoun('target'));
         }
         $entry->elementEnd('entry');
         $xml = $entry->getString();
         common_log(LOG_INFO, "Posting to Salmon endpoint {$this->salmonuri}: {$xml}");
         $salmon = new Salmon();
         // ?
         return $salmon->post($this->salmonuri, $xml, $actor);
     }
     return false;
 }
开发者ID:Grasia,项目名称:bolotweet,代码行数:49,代码来源:Ostatus_profile.php

示例12: asString

 function asString($namespace = false)
 {
     $xs = new XMLStringer(true);
     if ($namespace) {
         $attrs = array('xmlns' => 'http://www.w3.org/2005/Atom', 'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/', 'xmlns:georss' => 'http://www.georss.org/georss', 'xmlns:ostatus' => 'http://ostatus.org/schema/1.0', 'xmlns:poco' => 'http://portablecontacts.net/spec/1.0', 'xmlns:media' => 'http://purl.org/syndication/atommedia');
     } else {
         $attrs = array();
     }
     $xs->elementStart('entry', $attrs);
     $xs->element('id', null, $this->id);
     $xs->element('title', null, $this->title);
     $xs->element('published', null, common_date_iso8601($this->time));
     $xs->element('content', array('type' => 'html'), $this->content);
     if (!empty($this->summary)) {
         $xs->element('summary', null, $this->summary);
     }
     if (!empty($this->link)) {
         $xs->element('link', array('rel' => 'alternate', 'type' => 'text/html'), $this->link);
     }
     // XXX: add context
     $xs->elementStart('author');
     $xs->element('uri', array(), $this->actor->id);
     if ($this->actor->title) {
         $xs->element('name', array(), $this->actor->title);
     }
     $xs->elementEnd('author');
     $xs->raw($this->actor->asString('activity:actor'));
     $xs->element('activity:verb', null, $this->verb);
     if (!empty($this->objects)) {
         foreach ($this->objects as $object) {
             $xs->raw($object->asString());
         }
     }
     if ($this->target) {
         $xs->raw($this->target->asString('activity:target'));
     }
     foreach ($this->categories as $cat) {
         $xs->raw($cat->asString());
     }
     $xs->elementEnd('entry');
     return $xs->getString();
 }
开发者ID:sukhjindersingh,项目名称:PHInest-Solutions,代码行数:42,代码来源:activity.php

示例13: asAtomAuthor

 /**
  * Returns an XML string fragment with limited profile information
  * as an Atom <author> element.
  *
  * Assumes that Atom has been previously set up as the base namespace.
  *
  * @param Profile $cur the current authenticated user
  *
  * @return string
  */
 function asAtomAuthor($cur = null)
 {
     $xs = new XMLStringer(true);
     $xs->elementStart('author');
     $xs->element('name', null, $this->nickname);
     $xs->element('uri', null, $this->getUri());
     if ($cur != null) {
         $attrs = array();
         $attrs['following'] = $cur->isSubscribed($this) ? 'true' : 'false';
         $attrs['blocking'] = $cur->hasBlocked($this) ? 'true' : 'false';
         $xs->element('statusnet:profile_info', $attrs, null);
     }
     $xs->elementEnd('author');
     return $xs->getString();
 }
开发者ID:microcosmx,项目名称:experiments,代码行数:25,代码来源:Profile.php

示例14: asAtomEntry

 function asAtomEntry($namespace = false, $source = false, $author = true, $cur = null)
 {
     $profile = $this->getProfile();
     $xs = new XMLStringer(true);
     if ($namespace) {
         $attrs = array('xmlns' => 'http://www.w3.org/2005/Atom', 'xmlns:thr' => 'http://purl.org/syndication/thread/1.0', 'xmlns:georss' => 'http://www.georss.org/georss', 'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/', 'xmlns:media' => 'http://purl.org/syndication/atommedia', 'xmlns:poco' => 'http://portablecontacts.net/spec/1.0', 'xmlns:ostatus' => 'http://ostatus.org/schema/1.0', 'xmlns:statusnet' => 'http://status.net/schema/api/1/');
     } else {
         $attrs = array();
     }
     if (Event::handle('StartActivityStart', array(&$this, &$xs, &$attrs))) {
         $xs->elementStart('entry', $attrs);
         Event::handle('EndActivityStart', array(&$this, &$xs, &$attrs));
     }
     if (Event::handle('StartActivitySource', array(&$this, &$xs))) {
         if ($source) {
             $atom_feed = $profile->getAtomFeed();
             if (!empty($atom_feed)) {
                 $xs->elementStart('source');
                 // XXX: we should store the actual feed ID
                 $xs->element('id', null, $atom_feed);
                 // XXX: we should store the actual feed title
                 $xs->element('title', null, $profile->getBestName());
                 $xs->element('link', array('rel' => 'alternate', 'type' => 'text/html', 'href' => $profile->profileurl));
                 $xs->element('link', array('rel' => 'self', 'type' => 'application/atom+xml', 'href' => $atom_feed));
                 $xs->element('icon', null, $profile->avatarUrl(AVATAR_PROFILE_SIZE));
                 $notice = $profile->getCurrentNotice();
                 if (!empty($notice)) {
                     $xs->element('updated', null, self::utcDate($notice->created));
                 }
                 $user = User::staticGet('id', $profile->id);
                 if (!empty($user)) {
                     $xs->element('link', array('rel' => 'license', 'href' => common_config('license', 'url')));
                 }
                 $xs->elementEnd('source');
             }
         }
         Event::handle('EndActivitySource', array(&$this, &$xs));
     }
     $title = common_xml_safe_str($this->content);
     if (Event::handle('StartActivityTitle', array(&$this, &$xs, &$title))) {
         $xs->element('title', null, $title);
         Event::handle('EndActivityTitle', array($this, &$xs, $title));
     }
     $atomAuthor = '';
     if ($author) {
         $atomAuthor = $profile->asAtomAuthor($cur);
     }
     if (Event::handle('StartActivityAuthor', array(&$this, &$xs, &$atomAuthor))) {
         if (!empty($atomAuthor)) {
             $xs->raw($atomAuthor);
             Event::handle('EndActivityAuthor', array(&$this, &$xs, &$atomAuthor));
         }
     }
     $actor = '';
     if ($author) {
         $actor = $profile->asActivityActor();
     }
     if (Event::handle('StartActivityActor', array(&$this, &$xs, &$actor))) {
         if (!empty($actor)) {
             $xs->raw($actor);
             Event::handle('EndActivityActor', array(&$this, &$xs, &$actor));
         }
     }
     $url = $this->bestUrl();
     if (Event::handle('StartActivityLink', array(&$this, &$xs, &$url))) {
         $xs->element('link', array('rel' => 'alternate', 'type' => 'text/html', 'href' => $url));
         Event::handle('EndActivityLink', array(&$this, &$xs, $url));
     }
     $id = $this->uri;
     if (Event::handle('StartActivityId', array(&$this, &$xs, &$id))) {
         $xs->element('id', null, $id);
         Event::handle('EndActivityId', array(&$this, &$xs, $id));
     }
     $published = self::utcDate($this->created);
     if (Event::handle('StartActivityPublished', array(&$this, &$xs, &$published))) {
         $xs->element('published', null, $published);
         Event::handle('EndActivityPublished', array(&$this, &$xs, $published));
     }
     $updated = $published;
     // XXX: notices are usually immutable
     if (Event::handle('StartActivityUpdated', array(&$this, &$xs, &$updated))) {
         $xs->element('updated', null, $updated);
         Event::handle('EndActivityUpdated', array(&$this, &$xs, $updated));
     }
     $content = common_xml_safe_str($this->rendered);
     if (Event::handle('StartActivityContent', array(&$this, &$xs, &$content))) {
         $xs->element('content', array('type' => 'html'), $content);
         Event::handle('EndActivityContent', array(&$this, &$xs, $content));
     }
     // Most of our notices represent POSTing a NOTE. This is the default verb
     // for activity streams, so we normally just leave it out.
     $verb = ActivityVerb::POST;
     if (Event::handle('StartActivityVerb', array(&$this, &$xs, &$verb))) {
         $xs->element('activity:verb', null, $verb);
         Event::handle('EndActivityVerb', array(&$this, &$xs, $verb));
     }
     // We use the default behavior for activity streams: if there's no activity:object,
     // then treat the entry itself as the object. Here, you can set the type of that object,
     // which is normally a NOTE.
     $type = ActivityObject::NOTE;
//.........这里部分代码省略.........
开发者ID:Br3nda,项目名称:statusnet-debian,代码行数:101,代码来源:Notice.php

示例15: jabber_format_entry

/**
 * extra information for XMPP messages, as defined by Twitter
 *
 * @param Profile $profile Profile of the sending user
 * @param Notice  $notice  Notice being sent
 *
 * @return string Extra information (Atom, HTML, addresses) in string format
 */
function jabber_format_entry($profile, $notice)
{
    $entry = $notice->asAtomEntry(true, true);
    $xs = new XMLStringer();
    $xs->elementStart('html', array('xmlns' => 'http://jabber.org/protocol/xhtml-im'));
    $xs->elementStart('body', array('xmlns' => 'http://www.w3.org/1999/xhtml'));
    $xs->element('a', array('href' => $profile->profileurl), $profile->nickname);
    $xs->text(": ");
    if (!empty($notice->rendered)) {
        $xs->raw($notice->rendered);
    } else {
        $xs->raw(common_render_content($notice->content, $notice));
    }
    $xs->text(" ");
    $xs->element('a', array('href' => common_local_url('conversation', array('id' => $notice->conversation)) . '#notice-' . $notice->id), sprintf(_('[%s]'), $notice->id));
    $xs->elementEnd('body');
    $xs->elementEnd('html');
    $html = $xs->getString();
    return $html . ' ' . $entry;
}
开发者ID:microcosmx,项目名称:experiments,代码行数:28,代码来源:jabber.php


注:本文中的XMLStringer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。