CSVDataImExporterプラグイン・機能拡張版リリース

February 3,2021 11:55 PM
Category:[インポート・エクスポート]
Tag:[CSVDataImExporter, MovableType, Plugin]
Permalink

Movable Typeの記事データ・コンテンツデータをCSVデータでインポート・エクスポートできる「CSVDataImExporterプラグイン」の機能拡張版をリリースしました。

1.追加機能

システム管理画面よりコンテンツデータのインポート・エクスポートが可能です。これを使用することにより、複数のサイトや複数のコンテンツデータを横断した操作が不要となります(システム管理画面で記事のインポート・エクスポートは行えません)。

エクスポート画面(クリックで拡大、以下同様)

インポート画面

また、ロール編集画面に「コンテンツデータのインポート・エクスポート」および「記事のインポート・エクスポート」権限を追加しました。

ロール編集画面

これにより、権限別にコンテンツデータ・記事のインポート・エクスポートを制御することが可能です。
注:「サイト管理者」ロールは対象外(システム管理者と同等の動作)です。


上記は権限は、権限を与えたユーザーに対し、サイト配下のすべてのコンテンツデータに適用されますが、さらにコンテンツタイプ別に権限を設定したい場合は、「コンテンツタイプごとの権限」での制御も可能です。

ロール編集画面

ユーザーに特定のコンテンツデータのみエクスポート・インポートを許容したい場合はこちらの機能をご利用ください。
注:「サイト管理者」ロールは対象外(システム管理者と同等の動作)です。

2.システム管理画面からコンテンツデータのエクスポート・インポートするCSVフォーマットについて

システム管理画面からのコンテンツデータのエクスポート・インポートのCSVフォーマットは、サイト管理画面からのエクスポート・インポートのCSVフォーマットと異なります。

具体的には、システム管理画面からのエクスポート・インポートのCSVフォーマットは、左の2カラムに、

site_id,site_name

を付与します。site_idはサイトID、site_nameはサイトの名前です。これはシステム管理画面から指定したコンテンツタイプのサイトと、CSVファイルのサイトが適正であることを検証するためです。

サイト管理画面からエクスポートしたCSVファイルをシステム管理画面からインポートするには、上記の2カラムを追加してください。

その他、複数コンテンツタイプの一括エクスポートは行えません。

3.コンテンツデータのインポート・エクスポートの権限設定について

ロール編集画面の「作成と公開」に表示された「コンテンツデータのインポート・エクスポート」権限をチェックすると、自動的に「コンテンツデータの管理」にチェックがつきます。

また、ロール編集画面の「コンテンツタイプごとの権限」の「コンテンツデータのインポート・エクスポート」権限をチェックすると、自動的に「コンテンツデータの作成」にチェックがつきます。

後者の方法で権限を設定した場合、権限が設定されていないコンテンツデータにも「xxxをインポート」「xxxをエクスポート」のリンクが表示されますが、クリックするとダッシュボードにリダイレクトされます。

4.記事のインポート・エクスポートの権限設定について

ロール編集画面の「作成と公開」に表示された「記事のインポート・エクスポート」権限をチェックすると、自動的に「すべての記事の編集」にチェックがつきます。

5.評価版ダウンロード・購入

評価版ダウンロード・ご購入はCSVDataImExporterプラグインのページにアクセスしてください。

Comments [0] | Trackbacks [0]

bashのwhile文で利用した変数がループ外で反映されない場合の対処

January 22,2021 11:55 PM
Category:[bash]
Tag:[bash]
Permalink

bashのwhile文で利用した変数がループ外で反映されない場合の対処方法を紹介します。

1.問題点

次のようなスクリプト(test.sh)を書きました。

#!/bin/bash
 
counter=0
cat /etc/hosts | while read line; do
    counter=$(( counter + 1 ))
    echo $counter
done
 
echo $counter

このスクリプトを実行すると、最後のechoで/etc/hostsの行数が表示されるはずですが、次のように「0」と表示されます。

実行結果

# ./test.sh
1
2
3
4
5
6
7
8
9
10
0

ということで、bashのwhile文で利用した変数がループ外で反映されない場合の対処方法を紹介します。

2.対処

「cat /etc/hosts」はパイプを使わず、リダイレクトを使用します。

#!/bin/bash
 
counter=0
while read line; do
    counter=$(( counter + 1 ))
    echo $counter
done < <(cat /etc/hosts)
 
echo $counter

実行結果

# ./test.sh
1
2
3
4
5
6
7
8
9
10
10
Comments [0] | Trackbacks [0]

bashのechoでアスタリスク「*」がワイルドカードとして展開される場合の対処

January 18,2021 11:55 PM
Category:[bash]
Tag:[bash]
Permalink

bashのechoでアスタリスク「*」がワイルドカードとして展開される場合の対処について紹介します。

1.問題点

次のようなスクリプト「test.sh」を書きました。

#!/bin/bash
 
data='*** Error!! ***'
echo $data

が、実行すると期待しない結果になります。

実行結果

# ./test.sh
test.sh Error!! test.sh

具体的には、スクリプトを実行したディレクトリのファイル名が表示されます。

このディレクトリにはtest.shしかありませんが、例えば、test2.sh、test3.shがあると、

# ./test.sh
test.sh test2.sh test3.sh Error!! test.sh test2.sh test3.sh

となります。

2.原因

echoするときに、アスタリスク「*」がワイルドカードとして展開されている模様。

3.対処

echoするときの変数dataをダブルクォーテーションで括ります。

#!/bin/bash
 
data='*** Error!! ***'
echo "$data"

実行結果

# ./test.sh
*** Error!! ***
Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages