sub registbookmark : Path('/registbookmark') {
my ( $self, $c ) = @_;
my %data;
my $uid = $c->stash->{user}->user_id;
my $bookmark_exist = 0;
my $bdb;
# URL から直接ブックマークの場合
if( $c->req->method eq 'GET' ){
$c->stash->{template} = 'personal/getregistbookmark.tt';
}
foreach my $k (qw/
bookmark_title
bookmark_url
bookmark_tags
bookmark_comment
/
){
$data{$k} = Jcode::jcode($c->req->param($k))->utf8;
} # URL の確認
if( $data{bookmark_url} eq '' ){
$c->flash->{resultmessage} = 'URL が入力されていません';
$c->res->redirect('/personal');
return 1;
} my $url = $data{bookmark_url};
# Bookmark の既存確認
if( $bdb = $c->model('SecureSBMDB::Bookmark')->
find( {bookmark_uri => $url} )
){
if( my $ubdb = $c->model('SecureSBMDB::UserBookmark')->
find( {user_id => $uid, bookmark_id => $bdb->bookmark_id} )
){
$c->flash->{resultmessage} = $url . ' は既に登録されています.';
$c->res->redirect('/personal');
return 1;
}
$bookmark_exist = 1;
}stash の代わりに flash を使用してリダイレクトしています.ブックマークが存在していても他人が登録したものの場合には,関連づけを行うために $bookmark_exist = 1 を設定しておきます.
ロールとの関連付けを行うために準備をしておきます.
my $defaultrole = $c->stash->{user}->user_email;
my $rid;
# ロールの準備
if( my $rdb = $c->model('SecureSBMDB::Role')->
find( {role_name => $defaultrole} )
){
$rid = $rdb->role_id;
} # ブックマークの準備
if( $c->req->method eq 'GET' ){
$data{bookmark_title} = _gettitle( $url );
}
if( $data{bookmark_title} eq '' ){
$data{bookmark_title} = 'no title';
} if( $bookmark_exist or $bdb = $c->model('SecureSBMDB::Bookmark')->
create(
{
bookmark_uri => $data{bookmark_url},
bookmark_title=> $data{bookmark_title}
}
)
){ my $bid = $bdb->bookmark_id;
# ロールへの関連付け
$c->model('SecureSBMDB::BookmarkRole')->
create( {bookmark_id => $bid, role_id => $rid} ); # コメントの準備
my $comment;
if( $data{bookmark_comment} ){
$comment = $data{bookmark_comment};
}
# コメント登録
if( my $ubdb = $c->model('SecureSBMDB::UserBookmark')->
create(
{
user_id => $uid,
bookmark_id => $bid,
user_bookmark_comment => $comment,
user_bookmark_ts => 'now'
}
)
){ my $ubid = $ubdb->user_bookmark_id;
# タグの準備
my @tags;
if( $data{bookmark_tags} ){
my $tags = $data{bookmark_tags};
$tags =~ s/,/,/g; # 全角カンマの変換
# カンマの前後のスペースを考慮
@tags = split( /\s*[ ],\s*[ ]*/, $tags );
} # タグ登録
foreach my $v (@tags) {
if( my $tdb = $c->model('SecureSBMDB::Tag')->
find_or_create(
{
tag_name => $v
}
)
){ my $tid = $tdb->tag_id;
$c->model('SecureSBMDB::UserBookmarkTag')->
find_or_create(
{
user_bookmark_id => $ubid,
tag_id => $tid
}
);
}
} }
}
if( $c->req->method eq 'GET' ){
$c->forward('personal');
}else{
$c->res->redirect('/personal');
}
} my $bdb = $udb->bookmarks;
# Bookmark の検索
foreach my $bookmark ($bdb->all){
$tmpbm = _makeOneBookmarkEntry( $c, $bookmark->bookmark_id );
if( $tmpbm ){
unshift( @bookmarks, $tmpbm );
}
} $c->stash->{mybookmarks} = \@bookmarks; my $title = $bookmark->bookmark_title;
my $uri = $bookmark->bookmark_uri;
my $comment;
my $timestamp;
my $tmpbm = undef;
my $count = $c->model('SecureSBMDB::UserBookmark')->
count( {bookmark_id => $bookmark->bookmark_id} ); # それぞれのブックマークに対する処理
my $ubdb = $bookmark->user_bookmarks;
foreach my $userbookmark ($ubdb->all){
$comment = $userbookmark->user_bookmark_comment;
$timestamp = $userbookmark->user_bookmark_ts; my $ubtdb = $userbookmark->user_bookmark_tags;
my @tags = _getTags( $c, $ubtdb );
$tmpbm = {
id => $bookmark->bookmark_id,
title => $title,
url => $uri,
count => $count,
comment => $comment,
tags => \@tags,
timestamp => $timestamp
};
}<div id="listbookmark">
<h2 id="listbookmark_head">ブックマーク一覧</h2>
<div id="listbookmark_contents">
[% FOREACH bookmark_v IN mybookmarks -%]
<div id="each_listbookmark_[% bookmark_v.id %]" class="eachbookmark">
<a href="[% bookmark_v.url %]">[% bookmark_v.title | html %]</a>
([% bookmark_v.count %])
<br/>
タグ: [%- FOREACH tag_v IN bookmark_v.tags -%][% tag_v | html %],[% END -%]
<br />
コメント: [% bookmark_v.comment | html %]<br />
タイムスタンプ: [% bookmark_v.timestamp %]
</div> <!-- end of each_listbookmark_[% bookmark_v.id %] -->
[% END -%]
</div> <!-- end of listbookmark_contents -->
</div> <!-- end of listbookmark -->
java script:t=encodeURI(document.title);u=encodeURI(location.href);
location.href='http://localhost:3000/prepareregistbookmark?bookmark_url='
+u+'&bookmark_title='+t+'&bookmark_tags=&bookmark_comment=';void(0);タグ:Secure-SBM
<< [Secure-SBM:016] View セキュアフィルタ | Main | (センスのいい)ちっちゃい画像求む! >>
いかちょー (2007-06-27 14:53) | コメント(0)| トラックバック(22)
トラックバックURL:
Bet baseball. - Bet football. (2010年10月 6日 16:53)
Bet basketball. Bet mlb. Bet hockey. 続きを読む
Fioricet overnight. - Cheap fioricet. (2010年12月 5日 11:07)
Fioricet. Buy fioricet overnight. Order fioricet. Cheap fioricet. 続きを読む
Tramadol. - Tramadol. (2010年12月15日 13:31)
Tramadol no prescription. Tramadol. Tramadol hcl. 続きを読む
Valium withdrawal. - Diazepam valium. (2010年12月21日 08:33)
Buying brand name roche valium. Conversion table lorazepam to valium. Valium ... 続きを読む
Live psychics. - Live psychics. (2010年12月22日 08:07)
Live psychics. 続きを読む
Oregon psychics. - Oregon psychics. (2010年12月23日 08:28)
Oregon psychics. 続きを読む
Live psychics. - Psychics free reading. (2011年1月16日 07:53)
Psychics. Male psychics. Are psychics real. Psychics in michigan. Famous psyc... 続きを読む
Snowboard. - Snowboard. (2011年2月16日 06:14)
Snowboard. 続きを読む
Prevacid side effects. - Prevacid. (2011年2月18日 19:56)
Prevacid. Prevacid solutabs. Weaning off prevacid. 続きを読む
Methylphenidate. - Methylphenidate. (2011年2月19日 09:24)
Methylphenidate. 続きを読む
Cla. - Cla. (2011年2月19日 19:21)
Cla. 続きを読む
Adderall 10 mg. - Adderall 10 mg. (2011年2月21日 11:49)
Adderall 100 mg. Adderall 10 mg. 続きを読む
Ultram how supplied. - Ultram how supplied. (2011年2月21日 22:01)
Ultram how supplied. 続きを読む
Oxycodone 5mg tabs. - Oxycodone 5mg tabs. (2011年2月25日 13:49)
Oxycodone 5mg tabs. 続きを読む
Adderall and pantyhose. - Adderall and pantyhose. (2011年2月25日 23:47)
Adderall and pantyhose. 続きを読む
Borderline soma. - Borderline soma. (2011年2月26日 12:25)
Borderline soma. 続きを読む
Adderall and abilify. - Adderall and abilify. (2011年2月26日 23:36)
Adderall and abilify. 続きを読む
Adderall affecting menstruation. - Adderall affecting menstruation. (2011年2月27日 05:23)
Adderall affecting menstruation. 続きを読む
Oxycodone and breastfeeding. - Oxycodone and breastfeeding. (2011年2月27日 16:39)
Oxycodone and breastfeeding. 続きを読む
Drug information ultram. - Drug information ultram. (2011年2月28日 14:10)
Drug information ultram. 続きを読む
12.5mg adderall. - 12.5mg adderall. (2011年2月28日 22:51)
12.5mg adderall. 続きを読む
Oxycodone 512 strength. - Oxycodone 512 strength. (2011年3月 1日 00:50)
Oxycodone 512 strength. 続きを読む
月別アーカイブ
Copyright (C) 2004-2011 Nihon Unisys, Ltd. All Rights Reserved.
Powered by Movable Type Open Source