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


PHP Bookmark::insert方法代码示例

本文整理汇总了PHP中Bookmark::insert方法的典型用法代码示例。如果您正苦于以下问题:PHP Bookmark::insert方法的具体用法?PHP Bookmark::insert怎么用?PHP Bookmark::insert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Bookmark的用法示例。


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

示例1: saveNew

 /**
  * Save a new notice bookmark
  *
  * @param Profile $profile     To save the bookmark for
  * @param string  $title       Title of the bookmark
  * @param string  $url         URL of the bookmark
  * @param mixed   $rawtags     array of tags or string
  * @param string  $description Description of the bookmark
  * @param array   $options     Options for the Notice::saveNew()
  *
  * @return Notice saved notice
  */
 static function saveNew($profile, $title, $url, $rawtags, $description, $options = null)
 {
     if (!common_valid_http_url($url)) {
         throw new ClientException(_m('Only web bookmarks can be posted (HTTP or HTTPS).'));
     }
     $nb = self::getByURL($profile, $url);
     if (!empty($nb)) {
         // TRANS: Client exception thrown when trying to save a new bookmark that already exists.
         throw new ClientException(_m('Bookmark already exists.'));
     }
     if (empty($options)) {
         $options = array();
     }
     if (array_key_exists('uri', $options)) {
         $other = Bookmark::getKV('uri', $options['uri']);
         if (!empty($other)) {
             // TRANS: Client exception thrown when trying to save a new bookmark that already exists.
             throw new ClientException(_m('Bookmark already exists.'));
         }
     }
     if (is_string($rawtags)) {
         if (empty($rawtags)) {
             $rawtags = array();
         } else {
             $rawtags = preg_split('/[\\s,]+/', $rawtags);
         }
     }
     $nb = new Bookmark();
     $nb->id = UUID::gen();
     $nb->profile_id = $profile->id;
     $nb->url = $url;
     $nb->title = $title;
     $nb->description = $description;
     if (array_key_exists('created', $options)) {
         $nb->created = $options['created'];
     } else {
         $nb->created = common_sql_now();
     }
     if (array_key_exists('uri', $options)) {
         $nb->uri = $options['uri'];
     } else {
         // FIXME: hacks to work around router bugs in
         // queue daemons
         $r = Router::get();
         $path = $r->build('showbookmark', array('id' => $nb->id));
         if (empty($path)) {
             $nb->uri = common_path('bookmark/' . $nb->id, false, false);
         } else {
             $nb->uri = common_local_url('showbookmark', array('id' => $nb->id), null, null, false);
         }
     }
     $nb->insert();
     $tags = array();
     $replies = array();
     // filter "for:nickname" tags
     foreach ($rawtags as $tag) {
         if (strtolower(mb_substr($tag, 0, 4)) == 'for:') {
             // skip if done by caller
             if (!array_key_exists('replies', $options)) {
                 $nickname = mb_substr($tag, 4);
                 $other = common_relative_profile($profile, $nickname);
                 if (!empty($other)) {
                     $replies[] = $other->getUri();
                 }
             }
         } else {
             $tags[] = common_canonical_tag($tag);
         }
     }
     $hashtags = array();
     $taglinks = array();
     foreach ($tags as $tag) {
         $hashtags[] = '#' . $tag;
         $attrs = array('href' => Notice_tag::url($tag), 'rel' => $tag, 'class' => 'tag');
         $taglinks[] = XMLStringer::estring('a', $attrs, $tag);
     }
     // Use user's preferences for short URLs, if possible
     try {
         $user = User::getKV('id', $profile->id);
         $shortUrl = File_redirection::makeShort($url, empty($user) ? null : $user);
     } catch (Exception $e) {
         // Don't let this stop us.
         $shortUrl = $url;
     }
     // TRANS: Bookmark content.
     // TRANS: %1$s is a title, %2$s is a short URL, %3$s is the bookmark description,
     // TRANS: %4$s is space separated list of hash tags.
     $content = sprintf(_m('"%1$s" %2$s %3$s %4$s'), $title, $shortUrl, $description, implode(' ', $hashtags));
//.........这里部分代码省略.........
开发者ID:phpsource,项目名称:gnu-social,代码行数:101,代码来源:Bookmark.php

示例2: saveActivityObject

 /**
  * Store a Bookmark object
  *
  * @param Profile $profile     To save the bookmark for
  * @param string  $title       Title of the bookmark
  * @param string  $url         URL of the bookmark
  * @param string  $description Description of the bookmark
  *
  * @return Bookmark the Bookmark object
  */
 static function saveActivityObject(ActivityObject $actobj, Notice $stored)
 {
     $url = null;
     // each extra element is array('tagname', array('attr'=>'val', ...), 'content')
     foreach ($actobj->extra as $extra) {
         if ($extra[1]['rel'] !== 'related') {
             continue;
         }
         if ($url === null && strlen($extra[1]['href']) > 0) {
             $url = $extra[1]['href'];
         } elseif ($url !== null) {
             // TRANS: Client exception thrown when a bookmark is formatted incorrectly.
             throw new ClientException(sprintf(_m('Expected exactly 1 link rel=related in a Bookmark, got %1$d.'), count($relLinkEls)));
         }
     }
     if (is_null($url)) {
         // TRANS: Client exception thrown when a bookmark is formatted incorrectly.
         throw new ClientException(sprintf(_m('Expected exactly 1 link rel=related in a Bookmark, got %1$d.'), count($relLinkEls)));
     }
     if (!strlen($actobj->title)) {
         throw new ClientException(_m('You must provide a non-empty title.'));
     }
     if (!common_valid_http_url($url)) {
         throw new ClientException(_m('Only web bookmarks can be posted (HTTP or HTTPS).'));
     }
     try {
         $object = self::getByURL($stored->getProfile(), $url);
         throw new ClientException(_m('You have already bookmarked this URL.'));
     } catch (NoResultException $e) {
         // Alright, so then we have to create it.
     }
     $nb = new Bookmark();
     $nb->id = UUID::gen();
     $nb->uri = $stored->getUri();
     $nb->profile_id = $stored->getProfile()->getID();
     $nb->title = $actobj->title;
     $nb->url = $url;
     $nb->description = $actobj->summary;
     $nb->created = $stored->created;
     $result = $nb->insert();
     if ($result === false) {
         throw new ServerException('Could not insert Bookmark into database!');
     }
     return $nb;
 }
开发者ID:bashrc,项目名称:gnusocial-debian,代码行数:55,代码来源:Bookmark.php


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