web-OPAC+カーリルについて
前回に引き続いてweb-OPAC+の話題。
正直、カーリルさんへのリンクについてまさかカーリルさん自身に紹介してもらうことになるとは思ってなかったので、
ちょっとびっくりしています。
これもまた、web-OPAC+です。
むしろ、web-OPAC+が「javascriptによってweb-OPACを上書きする」手法だ、
ということが分かりやすいかも知れない、と思って、この稿を書いています。
今までだったら、web-OPAC内にリンクひとつ作ることすら、
システムベンダに依頼して”検討”してもらってようやく実現していました。
でも、これって、とてもとてもゆがんだ話です。
サービスを提供しているのは、システムベンダじゃありません。
その自治体であり、図書館です。または…背負って言うなら、司書が、サービスを提供してます。
にも関わらず、そのインターネットサービスが自由にならない。
司書がインターネットなんて分からないと言ってるなら、仕方ないですが、
そうでない図書館はとっても多いです。
司書はもちろん情報のスペシャリストですからね。
書誌情報から、より詳しい情報を紹介しているサイトへリンクを作る、
あるいは利用者の利用状況画面から「ブクログ」や「MediaMarker」などへのリンクを作って、
その人の読書記録作成を支援する。
普通にあっていいことだし、個々の図書館が判断することで、
「大多数の図書館がやらないから、うちでは対応しません」とベンダに言われて
諦めるようなことでもありません。
web-OPACを自分で作るのは、かなり厳しいのは分かります。
でも、すでにあるweb-OPACをjavascriptで上書きする、という方法なら、
より柔軟にさまざまな機能をweb-OPACに加えることができるのではないでしょうか?
必要なのは、個々のwebサービスへのリンクをシステムベンダに依頼することではない、
自分の作ったjavascriptを組み込むための一行、
<script type="text/javascript" language="JavaScript" src="ファイル名">
を追加してもらうことです。
これは図書館システムを作るベンダの方々にもお願いしたいです。
ネット上のサービスは、日々変化していきます。
さらに個々の自治体によっても、その要望は違います。
より柔軟にweb-OPACを運用するために、
web-OPACページ上に図書館が作ったhtmlやjavascriptを読み込むという事を考えてください。
最後に今回のweb-OPAC+カーリルのソースを紹介します。
function ISBN13to10( isbn13 ){ //isbnを10桁に変更するための変数
var isbn13=isbn13.replace(/(^\s+)|(\s+$)/g, "");
isbn13 = isbn13.replace(/\r\n/g,'');
isbn13 = isbn13.replace(/(\n|\r)/g, '');
var base = isbn13.toString().split("-").join("");
if(base.length==13){
base=base.slice(3,-1);
var digit = 0;
for(var i=0; i digit += Number(base.charAt(i)) * (10-i);
}
digit %= 11;
digit = 11-digit;
if(digit == 10){
digit='X';
}else if(digit == 11){
digit='0';
}
return base + digit.toString();
}else if(base.length==10){
return base;
}else{
return '0';
}
}
function ex_bib(){
if(window.location.pathname.indexOf('OPP1500')>=0){//書誌詳細画面で動き出す
var tr=document.getElementsByTagName('tr');
var lng=tr.length;
for(var i=0; i<lng; i++){
var td=tr[i].getElementsByTagName('td');
if(td[0].getAttribute('bgcolor')=='#999999'){//書誌見出しを判別
if(td[0].innerHTML.indexOf('タイトル')>=0){ //タイトル行を判別する
var tit=td[1];
}else if(td[0].innerHTML.indexOf('ISBN')>=0){ //ISBN行を判別し、タイトル行にリンクを追加
var isbn = td[1].innerHTML.replace(/<\/?[^>]+>/gi, "");
isbn = ISBN13to10(isbn);
if(isbn !='0'){
tit.innerHTML += '<br> <small><a href="http://calil.jp/book/'+isbn+'" target="_calil">図書館検索サイト「カーリル」で確認</a>(外部サイト)</small>';
}
}
}
}
}
}
window.onload(){
ex_bib();
}
さて、偉そうなことを言った最後に萎えるばかりですけれども、
このソースの利用はご自由で構いませんが、結果は保証できません。
このままでは動かないでしょう。おそらく、「書誌詳細画面で動き出す」「書誌見出しを判別」では、
個々の対応が必要です。
間違ってる、動かない、と教えて頂ければ、個人的には訂正も助言もしたいですが、
あくまでwemfls個人の努力の範囲内で、とご理解ください。
正直、カーリルさんへのリンクについてまさかカーリルさん自身に紹介してもらうことになるとは思ってなかったので、
ちょっとびっくりしています。
これもまた、web-OPAC+です。
むしろ、web-OPAC+が「javascriptによってweb-OPACを上書きする」手法だ、
ということが分かりやすいかも知れない、と思って、この稿を書いています。
今までだったら、web-OPAC内にリンクひとつ作ることすら、
システムベンダに依頼して”検討”してもらってようやく実現していました。
でも、これって、とてもとてもゆがんだ話です。
サービスを提供しているのは、システムベンダじゃありません。
その自治体であり、図書館です。または…背負って言うなら、司書が、サービスを提供してます。
にも関わらず、そのインターネットサービスが自由にならない。
司書がインターネットなんて分からないと言ってるなら、仕方ないですが、
そうでない図書館はとっても多いです。
司書はもちろん情報のスペシャリストですからね。
書誌情報から、より詳しい情報を紹介しているサイトへリンクを作る、
あるいは利用者の利用状況画面から「ブクログ」や「MediaMarker」などへのリンクを作って、
その人の読書記録作成を支援する。
普通にあっていいことだし、個々の図書館が判断することで、
「大多数の図書館がやらないから、うちでは対応しません」とベンダに言われて
諦めるようなことでもありません。
web-OPACを自分で作るのは、かなり厳しいのは分かります。
でも、すでにあるweb-OPACをjavascriptで上書きする、という方法なら、
より柔軟にさまざまな機能をweb-OPACに加えることができるのではないでしょうか?
必要なのは、個々のwebサービスへのリンクをシステムベンダに依頼することではない、
自分の作ったjavascriptを組み込むための一行、
<script type="text/javascript" language="JavaScript" src="ファイル名">
を追加してもらうことです。
これは図書館システムを作るベンダの方々にもお願いしたいです。
ネット上のサービスは、日々変化していきます。
さらに個々の自治体によっても、その要望は違います。
より柔軟にweb-OPACを運用するために、
web-OPACページ上に図書館が作ったhtmlやjavascriptを読み込むという事を考えてください。
最後に今回のweb-OPAC+カーリルのソースを紹介します。
function ISBN13to10( isbn13 ){ //isbnを10桁に変更するための変数
var isbn13=isbn13.replace(/(^\s+)|(\s+$)/g, "");
isbn13 = isbn13.replace(/\r\n/g,'');
isbn13 = isbn13.replace(/(\n|\r)/g, '');
var base = isbn13.toString().split("-").join("");
if(base.length==13){
base=base.slice(3,-1);
var digit = 0;
for(var i=0; i
}
digit %= 11;
digit = 11-digit;
if(digit == 10){
digit='X';
}else if(digit == 11){
digit='0';
}
return base + digit.toString();
}else if(base.length==10){
return base;
}else{
return '0';
}
}
function ex_bib(){
if(window.location.pathname.indexOf('OPP1500')>=0){//書誌詳細画面で動き出す
var tr=document.getElementsByTagName('tr');
var lng=tr.length;
for(var i=0; i<lng; i++){
var td=tr[i].getElementsByTagName('td');
if(td[0].getAttribute('bgcolor')=='#999999'){//書誌見出しを判別
if(td[0].innerHTML.indexOf('タイトル')>=0){ //タイトル行を判別する
var tit=td[1];
}else if(td[0].innerHTML.indexOf('ISBN')>=0){ //ISBN行を判別し、タイトル行にリンクを追加
var isbn = td[1].innerHTML.replace(/<\/?[^>]+>/gi, "");
isbn = ISBN13to10(isbn);
if(isbn !='0'){
tit.innerHTML += '<br> <small><a href="http://calil.jp/book/'+isbn+'" target="_calil">図書館検索サイト「カーリル」で確認</a>(外部サイト)</small>';
}
}
}
}
}
}
window.onload(){
ex_bib();
}
さて、偉そうなことを言った最後に萎えるばかりですけれども、
このソースの利用はご自由で構いませんが、結果は保証できません。
このままでは動かないでしょう。おそらく、「書誌詳細画面で動き出す」「書誌見出しを判別」では、
個々の対応が必要です。
間違ってる、動かない、と教えて頂ければ、個人的には訂正も助言もしたいですが、
あくまでwemfls個人の努力の範囲内で、とご理解ください。
スポンサーサイト