本文整理汇总了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));
//.........这里部分代码省略.........
示例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;
}