ホーム > nao-pon

nao-pon

16bit インストーラーの Windows Draw 7 を 64bit Windows (Win10) にインストールする

Changes

[Fusen:4] filter and pump

[Fusen:3] filter and pump

[Fusen:2] filter and pump

[Fusen:1] great article...
https://hpwb.net/2ul39Tl (buybestmassagechair.com)

image~.png

RSS of nao-pon/blog
2017 3月 1 (水)
 

16bit インストーラーの Windows Draw 7 を 64bit Windows (Win10) にインストールする anchor.png

おそらく、Windows 95 の頃から気に入ってずっと使っているアプリケーションで Micrografx の Windows Draw というものがあるのですが、64bit の Windows にインストールすることができず、残していた Windows XP のマシンで使用していたのですが、とうとうその XP のマシンが壊れてしまい、残すは ESXi の中のバーチャルマシンとしての XP で動かすしかなくなってしまいました。

しかし、やはりいつも使用しているマシンで利用したいと考え、最新の Windows 10 で SETUP.EXE を起動してみました。

image~.png

やはり、こうなりますね。インストールできません。
ちょっと調べてみたところ、InstallShield Ver.5.x なら、動作を阻害しているプロセスを止めればインストールできるようなのですが・・・

image~1.png

InstallShield 3.0 のようです。ここで諦めようとおもったのですが、もうひと踏ん張りして検索してみたところ次のサイトが見つかりました。

  • Installing 32-bit programs with 16-bit setup launcher stubs

    InstallShield 3 shortcut

    Download the InstallShield 3 Engine without Windows/Wine:

    View the version properties of the Setup Launcher, usually called SETUP.EXE. (under Windows, right click, select Properties, and click the "Version" tab).

    If the setup version is 3.xx.xxx, then as a convenience, you may download the Setup Engine executable directly from here rather than manually extracting it: Is3Engine.zip

    Place this file in a WRITABLE folder with the rest of your application install files and run it instead of setup.

ということなので、Is3Engine.zip をダウンロードして解凍してできた setup32.exe をインストール CD をまるごとコピーしたフォルダーに置き起動してみます。

image~2.png

おお!来たね〜!

image~3.png

インストールが開始されました。

image~4.png

順調に進みます。

image~5.png

おお!無事に完了した模様。

image~6.png

わーい!見事に起動しました!

image~7.png

ちゃんと使えます!

そして、仕上げに現在のサポート先のインフィニシスのダウンロードページよりアップデーターをダウンロードして適用します。

image~8.png

とても古いアプリケーションですが、自分的には慣れていてとても使いやすいので、これでまた作業が捗ります。 :-)

fusen.dat
id.1:
通りすがりさん : : 18/03/26 22:13

great article...
https://hpwb.net/2ul39Tl (buybestmassagechair.com)

id.2:
通りすがりさん : : 18/04/05 02:10
id.3:
通りすがりさん : : 18/04/05 02:10
id.4:
通りすがりさん : : 18/04/05 02:10

X-elFinder 2.25 をリリースしました

RSS of nao-pon/blog
2017 10月 25 (水)
 

X-elFinder 2.25 をリリースしました anchor.png

X-elFinder 2.25 をリリースしました。ベースの elFinder は今日の時点の最新 Nightly (2.1.29 + Nightly: e9d7e60) になっています。

ベースの elFinder は色々と機能追加したり、パフォーマンスの改善、バグ修正などを行っています。

また、X-elFinder 独自の機能としてマネージャーから XOOPS ログイン/ログアウトができるようになりました。

ツールバーにログイン/ログアウトボタンがあります, login-button.png
ツールバーにログイン/ログアウトボタンがあります
ログインボタンをクリックすると ログインダイアログが開きます, login-dialog.png
ログインボタンをクリックすると ログインダイアログが開きます

X-update でアップデート可能です。お試しください。 :-)

xpWiki 5.02.28 から PHP 5.3 未満では動作しなくなります

Changes

#snsref(http://hpwb.net/2hBl7HQ

2017 10月 11 (水)
 

xpWiki 5.02.28 から PHP 5.3 未満では動作しなくなります anchor.png Edit

module_icon.pngTag: アナウンス

PHP 7.2 対応のため、xpWiki は次回のバージョン 5.02.28 から PHP 5.3 未満では動作しなくなります。

その理由の一つとして `create_function` 関数が PHP 7.2 から非奨励になることがあげられます。`create_function` 関数の代わりに PHP の無名関数構文を使用しますが、これが PHP 5.3 未満では動作しないためです。

未だ PHP 5.3 未満の環境の方はほぼいないと思いますが、ご承知おきください。

X-elFinder で GoogleDrive のサービスアカウントのボリュームを使う

Changes

anchor.png

Page Top

X-elFinder で GoogleDrive のサービスアカウントのボリュームを使う anchor.png

Tag: X-elFinder GoogleDrive elFinder
Google のAPIには、サービスアカウントというものがあり、個人のアカウントとは独立したサービスを受けることができます。
GoogleDrive をサービスアカウントで利用すると、そのサービスアカウントでしかアクセスできない独立したドライブスペースの割当*1を受けることができます。そのドライブスペースを X-elFinder の微リュームとしてマウントして利用してみよう!という話です。
Page Top

サービスアカウントの作成 anchor.png

ダウンロードした JSON ファイルを xoops_trust_path/upload/xelfinder に保存します。

Page Top

管理画面・一般設定・ボリュームドライバ に追加 anchor.png

xelfinder:GoogleDrive:/:Public@GDrive:id=gp|ext_service_key_file=xxxxxxxxx.json
RSS of nao-pon/blog
2017 4月 21 (金)
 

X-elFinder で GoogleDrive のサービスアカウントのボリュームを使う anchor.png

Google のAPIには、サービスアカウントというものがあり、個人のアカウントとは独立したサービスを受けることができます。

GoogleDrive をサービスアカウントで利用すると、そのサービスアカウントでしかアクセスできない独立したドライブスペースの割当*1を受けることができます。そのドライブスペースを X-elFinder の微リュームとしてマウントして利用してみよう!という話です。

Page Top

サービスアカウントの作成 anchor.png

ダウンロードした JSON ファイルを xoops_trust_path/upload/xelfinder に保存します。

Page Top

管理画面・一般設定・ボリュームドライバ に追加 anchor.png

xelfinder:GoogleDrive:/:Public@GDrive:id=gp|ext_service_key_file=xxxxxxxxx.json

ネットワークで同一セグメント内の複数のゲートウェイに対応する

Changes

問題がなければ iptables コマンドで変更した現在の設定を保存します。

本題がなければ iptables コマンドで変更した現在の設定を保存します。

本題がなければ現在の設定を保存します。

# /sbin/service iptables save

追記: Raspberry Pi にも設定してみました - ネットワークで同一セグメント内の複数のゲートウェイに対応する (Raspberry Pi 編)

尚、今回のネットワーク概略図はオンラインサービスの draw.io を利用して簡単に書いてみました。

RSS of nao-pon/blog
2017 4月 14 (金)
 

ネットワークで同一セグメント内の複数のゲートウェイに対応する anchor.png

先日、プロバイダーのBiglobeはそのままに、コミュファからフレッツ光ネクスト【隼】にインターネット回線を切り替えたのですが、夜間の速度落ち込みが酷いため、V6プラスでの接続を追加しました。

ただ、Web サーバーやメールサーバーはポート開放をする必要があり、V6プラスでは利用できないため、ONU と HGW(NTT のホームゲートウェイ)の間にハブを追加して、そこから分岐して別途 PPPoEv4 用のルーターを繋げて、宅内ネットワークから見て、2系統のゲートウェイを用意して V6プラスと PPPoEv4 の接続をデフォルトゲートウェイを変更することで選択可能にしてあります。

ネットワーク概略, ネットワーク図.png
ネットワーク概略

しかし、Web サーバーでインターネットからデーターを取得する場合に、夜間の遅いときに動作に支障をきたすほどです。具体的には XOOPS Cube Legacy の X-update で legacy コアをダウンロードするのにタイムアウトととなってしまい正常に終了できません。

legacy コアは、10数Mバイトなのですが、これが5分のタイムアウトに引っかかるのですから、めっちゃ遅いことが分かると思います。

そこで、デフォルトルートを V6プラスのルーターにしておき、PPPoEv4 のルーターから入ってきた通信のみそのルーターに返すという仕組みにするばよいのではと考えていました。

ネットワークに疎いので、それをどのようにしたら良いのかが分からずに日にちが過ぎていたのですが、今日たまたまヒントとなるブログ記事に巡り合ったので、早速設定してみました。

そのブログ記事が

本当によく分からないので、とりあえず写経。

iptables で 特定のゲートウェイからの通信にマークをつけるとのこと。

「まっしろなめも帳」さんより引用

 ※ manglee tableをクリア
 # iptables -t mangle -F

 ※ 特定のMACアドレスから通信が入ってきた場合、1番のマークを付ける
 # iptables -t mangle -A INPUT -m mac --mac-source 【PPPoEv4 ルータの MAC アドレス】 -j MARK --set-mark 1

 ※ 入ってきた通信の追跡ができるようmark情報を保存する
 # iptables -t mangle -A INPUT -j CONNMARK --save-mark

 ※ markがついていた通信の関連通信(今回はOUTPUT)のmarkを継続して付与する(save-markの情報をrestoreする)
 # iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark

そして、引用元の記事では一時的なルーティングということらしいのですが、私は恒久的にしたいので /etc/sysconfig/network-scripts 以下に書き込みます。

# vim /etc/sysconfig/network-scripts/route-eth0
default via 【PPPoEv4 ルータの IP アドレス】 table 200
# vim /etc/sysconfig/network-scripts/rule-eth0
fwmark 1 table 200

そして、ネットワークサービスを再起動

# service network restart

念のため、グローバル IP アドレスの確認

$ curl inet-ip.info

V6プラス接続の IP アドレスになりました。

また、携帯の 4G 回線で確認し、外部からの Web サーバーに対するアクセスも問題ないことが確認できました。

問題がなければ iptables コマンドで変更した現在の設定を保存します。

# /sbin/service iptables save

「まっしろなめも帳」さんのお陰で助かりました!ありがとうございます。 :thumb_up:

尚、今回のネットワーク概略図はオンラインサービスの draw.io を利用して簡単に書いてみました。

追記: Raspberry Pi にも設定してみました - ネットワークで同一セグメント内の複数のゲートウェイに対応する (Raspberry Pi 編)

ネットワークで同一セグメント内の複数のゲートウェイに対応する (Raspberry Pi 編)

Changes

前回の「ネットワークで同一セグメント内の複数のゲートウェイに対応する」で設定したルーティングが調子がいいので、Raspberry Pi の Web サーバー(pi2.hypweb.net, phpng.pi2.hypweb.net) にも適用してみます。

RSS of nao-pon/blog
2017 4月 19 (水)
 
ページ内コンテンツ
  • ネットワークで同一セグメント内の複数のゲートウェイに対応する (Raspberry Pi 編)
      • PPPoE v4 ルーターを通ってきた信号にマークを付けます
      • とりあえず確認
      • デフォルトルートの変更
      • 起動時のルーティング設定
      • 再起動
      • 最終確認
    • これで完了!

ネットワークで同一セグメント内の複数のゲートウェイに対応する (Raspberry Pi 編) anchor.png

前回の「ネットワークで同一セグメント内の複数のゲートウェイに対応する」で設定したルーティングが調子がいいので、Raspberry Pi の Web サーバー(pi2.hypweb.net, phpng.pi2.hypweb.net) にも適用してみます。

Raspberry Pi の Webサーバーは、公開 Web サーバーに受けた pi2.hypweb.net, phpng.pi2.hypweb.net へのリクエストを Apache のリバースプロキシで転送しています。そのような環境でもうまくいくのかよく分かりませんが、とにかく設定してみます。

基本的には、前回と同様です。

Page Top

PPPoE v4 ルーターを通ってきた信号にマークを付けます anchor.png

# iptables -t mangle -F
# iptables -t mangle -A INPUT -m mac --mac-source 【PPPoEv4 ルータの MAC アドレス】 -j MARK --set-mark 1
# iptables -t mangle -A INPUT -j CONNMARK --save-mark
# iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
Page Top

とりあえず確認 anchor.png

  • デフォルトルート変更
    # ip route add default via 192.168.1.1
    # ip route del default via 192.168.1.50
  • ip コマンド実行
    # ip route add default via 192.168.1.50 table 200
    # ip rule add fwmark 1 table 200
  • グローバル確認
    # curl inet-ip.info
  • 外部からの接続確認
    • 携帯の 4G 回線から確認

とりあえず、これで問題ないようですので恒久的な設定を行います。

Page Top

デフォルトルートの変更 anchor.png

Raspberry Pi の Raspbian Jessie では、固定 IP の設定は /etc/dhcpcd.conf に設定してあります。

# vim /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.1.201
static routers=192.168.1.1
static domain_name_servers=192.168.1.92
Page Top

起動時のルーティング設定 anchor.png

/etc/network/interfaces を編集し、"up " に続けて実行するコマンドを記述します。

# vim /etc/network/interfaces
iface eth0 inet manual

up ip route add default via 192.168.1.50 table 200
up ip rule add fwmark 1 table 200
Page Top

再起動 anchor.png

ネットワークのみ再起動したかったのですが、いまいち方法がよく分からず、マシン再起動をしました。

# reboot
Page Top

最終確認 anchor.png

  • グローバル IP アドレスの確認
    $ curl inet-ip.info
  • 外部からの接続確認
    • 携帯の 4G 回線で外からアクセスして確認
Page Top

これで完了! anchor.png

リバースプロキシ経由でも、特に変わることはなく無事に完了しました。

16bit インストーラーの Windows Draw 7 を 64bit Windows (Win10) にインストールする

Changes

image~.png

#navi

RSS of nao-pon/blog
#boxdate

16bit インストーラーの Windows Draw 7 を 64bit Windows (Win10) にインストールする anchor.png

Tag: Windows 16bit setup Draw

おそらく、Windows 95 の頃から気に入ってずっと使っているアプリケーションで Micrografx の Windows Draw というものがあるのですが、64bit の Windows にインストールすることができず、残していた Windows XP のマシンで使用していたのですが、とうとうその XP のマシンが壊れてしまい、残すは ESXi の中のバーチャルマシンとしての XP で動かすしかなくなってしまいました。

しかし、やはりいつも使用しているマシンで利用したいと考え、最新の Windows 10 で SETUP.EXE を起動してみました。

image~.png

やはり、こうなりますね。インストールできません。
ちょっと調べてみたところ、InstallShield Ver.5.x なら、動作を阻害しているプロセスを止めればインストールできるようなのですが・・・

image~1.png

InstallShield 3.0 のようです。ここで諦めようとおもったのですが、もうひと踏ん張りして検索してみたところ次のサイトが見つかりました。

  • Installing 32-bit programs with 16-bit setup launcher stubs

    InstallShield 3 shortcut

    Download the InstallShield 3 Engine without Windows/Wine:

    View the version properties of the Setup Launcher, usually called SETUP.EXE. (under Windows, right click, select Properties, and click the "Version" tab).

    If the setup version is 3.xx.xxx, then as a convenience, you may download the Setup Engine executable directly from here rather than manually extracting it: Is3Engine.zip

    Place this file in a WRITABLE folder with the rest of your application install files and run it instead of setup.

ということなので、Is3Engine.zip をダウンロードして解凍してできた setup32.exe をインストール CD をまるごとコピーしたフォルダーに置き起動してみます。

image~2.png

おお!来たね〜!

image~3.png

インストールが開始されました。

image~4.png

順調に進みます。

image~5.png

おお!無事に完了した模様。

image~6.png

わーい!見事に起動しました!

image~7.png

ちゃんと使えます!

そして、仕上げに現在のサポート先のインフィニシスのダウンロードページよりアップデーターをダウンロードして適用します。

  • Windows Draw 7 サービスパック 2
  • Windows Draw 7.2 サービスパック 5

    尚、このサービスパックはサービスパック4までの修正内容を含んでおりますが、PhotoMagic に対する修正内容は含まれておりません。PhotoMagic の問題を解決するためには、まずはじめにサービスパック2をご利用ください。

image~8.png

とても古いアプリケーションですが、自分的には慣れていてとても使いやすいので、これでまた作業が捗ります。 :-)

ページコメント(0)
#navi
RSS of nao-pon/blog
2017 3月 1 (水)
 

16bit インストーラーの Windows Draw 7 を 64bit Windows (Win10) にインストールする anchor.png

おそらく、Windows 95 の頃から気に入ってずっと使っているアプリケーションで Micrografx の Windows Draw というものがあるのですが、64bit の Windows にインストールすることができず、残していた Windows XP のマシンで使用していたのですが、とうとうその XP のマシンが壊れてしまい、残すは ESXi の中のバーチャルマシンとしての XP で動かすしかなくなってしまいました。

しかし、やはりいつも使用しているマシンで利用したいと考え、最新の Windows 10 で SETUP.EXE を起動してみました。

image~.png

やはり、こうなりますね。インストールできません。
ちょっと調べてみたところ、InstallShield Ver.5.x なら、動作を阻害しているプロセスを止めればインストールできるようなのですが・・・

image~1.png

InstallShield 3.0 のようです。ここで諦めようとおもったのですが、もうひと踏ん張りして検索してみたところ次のサイトが見つかりました。

  • Installing 32-bit programs with 16-bit setup launcher stubs

    InstallShield 3 shortcut

    Download the InstallShield 3 Engine without Windows/Wine:

    View the version properties of the Setup Launcher, usually called SETUP.EXE. (under Windows, right click, select Properties, and click the "Version" tab).

    If the setup version is 3.xx.xxx, then as a convenience, you may download the Setup Engine executable directly from here rather than manually extracting it: Is3Engine.zip

    Place this file in a WRITABLE folder with the rest of your application install files and run it instead of setup.

ということなので、Is3Engine.zip をダウンロードして解凍してできた setup32.exe をインストール CD をまるごとコピーしたフォルダーに置き起動してみます。

image~2.png

おお!来たね〜!

image~3.png

インストールが開始されました。

image~4.png

順調に進みます。

image~5.png

おお!無事に完了した模様。

image~6.png

わーい!見事に起動しました!

image~7.png

ちゃんと使えます!

そして、仕上げに現在のサポート先のインフィニシスのダウンロードページよりアップデーターをダウンロードして適用します。

image~8.png

とても古いアプリケーションですが、自分的には慣れていてとても使いやすいので、これでまた作業が捗ります。 :-)

XOOPS サイトの IPv6 対応の私的メモ

Changes

詳細メモ anchor.png

Page Top

class/protector.php ip_match() anchor.png

#code(php,366-){{
function ip_match( $ips )
{

	foreach( $ips as $ip => $info ) {
		if( $ip ) {
			$ip = strtolower($ip);
			switch( substr( $ip , -1 ) ) {
				case '.' :
				case ':' :
					// foward match
					if( substr( @$_SERVER['REMOTE_ADDR'] , 0 , strlen( $ip ) ) == $ip ) {
						$this->ip_matched_info = $info ;
						return true ;
					}
					break ;
				case '0' :
				case '1' :
				case '2' :
				case '3' :
				case '4' :
				case '5' :
				case '6' :
				case '7' :
				case '8' :
				case '9' :
				case 'a' :
				case 'b' :
				case 'c' :
				case 'd' :
				case 'e' :
				case 'f' :
					// full match
					if( @$_SERVER['REMOTE_ADDR'] == $ip ) {
						$this->ip_matched_info = $info ;
						return true ;
					}
					break ;
				default :
					// perl regex
					if( @preg_match( $ip , @$_SERVER['REMOTE_ADDR'] ) ) {
						$this->ip_matched_info = $info ;
						return true ;
					}
					break ;
			}
		}
	}
	$this->ip_matched_info = null ;
	return false ;

}
}}

  • protector モジュールの class/protector.php ip_match() の IPv6 対応(後述)

hypweb.net の Web サーバーを IPv6 対応しました。
IPv6 でアクセスすると左上に IPv6 の文字が表示されます。
hypweb_IPv6.png

しかし、XOOPS 固有の問題がありちょこちょこ修正しています。

  • xpWiki モジュールの counter, tb テーブルの ip カラムの文字数拡張(モジュールアップデートスクリプトにて対応完了)
  • xpWiki モジュールの counter, tb テーブルの ip カラムの文字数拡張
RSS of nao-pon/blog
2017 2月 14 (火)
 
ページ内コンテンツ
  • XOOPS サイトの IPv6 対応の私的メモ
    • 施した対策
    • ToDo
    • 詳細メモ
      • class/protector.php ip_match()

XOOPS サイトの IPv6 対応の私的メモ anchor.png

hypweb.net の Web サーバーを IPv6 対応しました。
IPv6 でアクセスすると左上に IPv6 の文字が表示されます。

hypweb_IPv6.png

しかし、XOOPS 固有の問題がありちょこちょこ修正しています。

このページはその私的メモで、随時更新していきます。

Page Top

施した対策 anchor.png

  • online テーブルの online_ip カラムの文字数拡張(39文字)
  • protector モジュールの class/protector.php ip_match() の IPv6 対応(後述)
  • protector モジュールの一般設定 信頼できる IP に ^::1$ と ^fe80:: を追加
  • protector モジュールの管理画面の BadIP のリストアップとその保存処理で、有効時間とIPのセパレーターを ":" から "-" に変更(trust/modules/protector/admin/index.php)
  • d3forum の posts テーブルの poster_ip, modifier_ip カラムの文字数拡張(39文字)
  • xpWiki モジュールの counter, tb テーブルの ip カラムの文字数拡張(モジュールアップデートスクリプトにて対応完了)
Page Top

ToDo anchor.png

  • protector の BadIP の登録で IPv6 のプレフィクス長を管理画面で指定できるようにする。
Page Top

詳細メモ anchor.png

Page Top

class/protector.php ip_match() anchor.png

366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
function ip_match( $ips )
{
    foreach( $ips as $ip => $info ) {
        if( $ip ) {
            $ip = strtolower($ip);
            switch( substr( $ip , -1 ) ) {
                case '.' :
                case ':' :
                    // foward match
                    if( substr( @$_SERVER['REMOTE_ADDR'] , 0 , strlen( $ip ) ) == $ip ) {
                        $this->ip_matched_info = $info ;
                        return true ;
                    }
                    break ;
                case '0' :
                case '1' :
                case '2' :
                case '3' :
                case '4' :
                case '5' :
                case '6' :
                case '7' :
                case '8' :
                case '9' :
                case 'a' :
                case 'b' :
                case 'c' :
                case 'd' :
                case 'e' :
                case 'f' :
                    // full match
                    if( @$_SERVER['REMOTE_ADDR'] == $ip ) {
                        $this->ip_matched_info = $info ;
                        return true ;
                    }
                    break ;
                default :
                    // perl regex
                    if( @preg_match( $ip , @$_SERVER['REMOTE_ADDR'] ) ) {
                        $this->ip_matched_info = $info ;
                        return true ;
                    }
                    break ;
            }
        }
    }
    $this->ip_matched_info = null ;
    return false ;
}

LINE の通知音の鳴り分けを Tasker でやってみた

Changes

#navi

RSS of nao-pon/blog
#boxdate

LINE の通知音の鳴り分けを Tasker でやってみた anchor.png

Tag: Android Tasker LINE

超〜〜久々にブログ書いてみようかな。 :hammer:

昨年の年末31日に家族5台分のスマホを MNP でソフトバンクからドコモへ移りました。

スマホの内訳は iPhone 6S 64GB が 4台と Xperia X Perfomance が 1台でいずれも一括0円でした。Xperia は自分のです。実は XZ も一括0円でしたが、サイズ感とMicroUSBを選択して XP にした変わり者です。 :-D

と、前置きはこのぐらいにしてタイトルの件です。

LINE の通知音の鳴り分けをしたくて、Android アプリの Tasker を使って実現してみました。

#pre{{
Profile: LINE通知

Event: Notification [ Owner Application:LINE Title:* Text:* Subtext:* Other Text:* Cat:* New Only:Off ]

Enter: LINE鳴り分け

A1: Variable Set [ Name:%title To:%NTITLE Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Flash [ Text:%title Long:Off ]
A3: Variable Set [ Name:%sound To:0 Recurse Variables:Off Do Maths:Off Append:Off ]
A4: Variable Set [ Name:%sound To:-1 Recurse Variables:Off Do Maths:Off Append:Off ] If [ %title eq LINE ]
A5: Variable Set [ Name:%sound To:1 Recurse Variables:Off Do Maths:Off Append:Off ] If [ %title ~ 太郎* | %title ~ 次郎* ]
A6: Play Ringtone [ Type:Notification Sound:Procyon Stream:5 ] If [ %sound eq 1 ]
A7: Play Ringtone [ Type:Notification Sound:Ray Stream:5 ] If [ %sound eq 0 ]

}}

  • LINE の通知をトリガーにしてタスクを設定します。
  • 通知のタイトルをローカル変数 %title に保存します。
  • デフォルトの通知音用にローカル変数 %sound に 0 をセットします。
  • 太郎さんと次郎さんの通知音のみ特別なものにするため %sound に 1 をセットします。前方一致とするためにワイルドカード * を追加しています。
  • グループトークの通知は、どうやら 2回トリガーされるらしく、タイトルが "LINE" の場合は無視するために %sound に -1 をセットします。
  • %sound = 0 と 1 の通知音を鳴らします。

Tasker で通知音をならすため、ラインアプリ自体の通知音は無効にしておかないと、2重に通知音が鳴ります。

とこんなところです。ラインアプリで通知音鳴り分けを設定できればこんな面倒なことしなくても済むのにね :laught:

XML も置いときます。

#code(LINE通知鳴り分け.xml)

ページコメント(0)
#navi
RSS of nao-pon/blog
2017 1月 16 (月)
 

LINE の通知音の鳴り分けを Tasker でやってみた anchor.png

超〜〜久々にブログ書いてみようかな。 :hammer:

昨年の年末31日に家族5台分のスマホを MNP でソフトバンクからドコモへ移りました。

スマホの内訳は iPhone 6S 64GB が 4台と Xperia X Perfomance が 1台でいずれも一括0円でした。Xperia は自分のです。実は XZ も一括0円でしたが、サイズ感とMicroUSBを選択して XP にした変わり者です。 :-D

と、前置きはこのぐらいにしてタイトルの件です。

LINE の通知音の鳴り分けをしたくて、Android アプリの Tasker を使って実現してみました。

Profile: LINE通知
 Event: Notification [ Owner Application:LINE Title:* Text:* Subtext:* Other Text:* Cat:* New Only:Off ]
Enter: LINE鳴り分け
 A1: Variable Set [ Name:%title To:%NTITLE Recurse Variables:Off Do Maths:Off Append:Off ]
 A2: Flash [ Text:%title Long:Off ]
 A3: Variable Set [ Name:%sound To:0 Recurse Variables:Off Do Maths:Off Append:Off ]
 A4: Variable Set [ Name:%sound To:-1 Recurse Variables:Off Do Maths:Off Append:Off ] If [ %title eq LINE ]
 A5: Variable Set [ Name:%sound To:1 Recurse Variables:Off Do Maths:Off Append:Off ] If [ %title ~ 太郎* | %title ~ 次郎* ]
 A6: Play Ringtone [ Type:Notification Sound:Procyon Stream:5 ] If [ %sound eq 1 ]
 A7: Play Ringtone [ Type:Notification Sound:Ray Stream:5 ] If [ %sound eq 0 ]
  • LINE の通知をトリガーにしてタスクを設定します。
  • 通知のタイトルをローカル変数 %title に保存します。
  • デフォルトの通知音用にローカル変数 %sound に 0 をセットします。
  • 太郎さんと次郎さんの通知音のみ特別なものにするため %sound に 1 をセットします。前方一致とするためにワイルドカード * を追加しています。
  • グループトークの通知は、どうやら 2回トリガーされるらしく、タイトルが "LINE" の場合は無視するために %sound に -1 をセットします。
  • %sound = 0 と 1 の通知音を鳴らします。

Tasker で通知音をならすため、ラインアプリ自体の通知音は無効にしておかないと、2重に通知音が鳴ります。

とこんなところです。ラインアプリで通知音鳴り分けを設定できればこんな面倒なことしなくても済むのにね :laught:

XML も置いときます。

fileLINE通知鳴り分け.xml
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<taskerdata sr="" dvi="1" tv="4.9u3m">
    <profile sr="prof56" ve="2">
        <cdate>
            1484378254333
        </cdate>
        <edate>
            1484570390541
        </edate>
        <id>
            56
        </id>
        <mid0>
            55
        </mid0>
        <nme>
            LINE通知
        </nme>
        <event sr="con0" ve="2">
            <code>
                461
            </code>
            <app sr="arg0">
                <appclass>
                    jp.naver.line.android.activity.SplashActivity
                </appclass>
                <apppkg>
                    jp.naver.line.android
                </apppkg>
                <label>
                    LINE
                </label>
            </app>
            <str sr="arg1" ve="3">
            </str>
            <str sr="arg2" ve="3">
            </str>
            <str sr="arg3" ve="3">
            </str>
            <str sr="arg4" ve="3">
            </str>
            <str sr="arg5" ve="3">
                <int sr="arg6" val="0">
                </int>
            </str>
        </event>
    </profile>
    <task sr="task55">
        <cdate>
            1484377764924
        </cdate>
        <edate>
            1484570390541
        </edate>
        <id>
            55
        </id>
        <nme>
            LINE鳴り分け
        </nme>
        <action sr="act0" ve="7">
            <code>
                547
            </code>
            <str sr="arg0" ve="3">
                %title
            </str>
            <str sr="arg1" ve="3">
                %NTITLE
            </str>
            <int sr="arg2" val="0">
            </int>
            <int sr="arg3" val="0">
            </int>
            <int sr="arg4" val="0">
            </int>
        </action>
        <action sr="act1" ve="7">
            <code>
                548
            </code>
            <str sr="arg0" ve="3">
                %title
            </str>
            <int sr="arg1" val="0">
            </int>
        </action>
        <action sr="act2" ve="7">
            <code>
                547
            </code>
            <str sr="arg0" ve="3">
                %sound
            </str>
            <str sr="arg1" ve="3">
                0
            </str>
            <int sr="arg2" val="0">
            </int>
            <int sr="arg3" val="0">
            </int>
            <int sr="arg4" val="0">
            </int>
        </action>
        <action sr="act3" ve="7">
            <code>
                547
            </code>
            <str sr="arg0" ve="3">
                %sound
            </str>
            <str sr="arg1" ve="3">
                -1
            </str>
            <int sr="arg2" val="0">
            </int>
            <int sr="arg3" val="0">
            </int>
            <int sr="arg4" val="0">
                <conditionlist sr="if">
                    <condition sr="c0" ve="3">
                        <lhs>
                            %title
                        </lhs>
                        <op>
                            0
                        </op>
                        <rhs>
                            LINE
                        </rhs>
                    </condition>
                </conditionlist>
            </int>
        </action>
        <action sr="act4" ve="7">
            <code>
                547
            </code>
            <str sr="arg0" ve="3">
                %sound
            </str>
            <str sr="arg1" ve="3">
                1
            </str>
            <int sr="arg2" val="0">
            </int>
            <int sr="arg3" val="0">
            </int>
            <int sr="arg4" val="0">
                <conditionlist sr="if">
                    <bool0>
                        Or
                    </bool0>
                    <condition sr="c0" ve="3">
                        <lhs>
                            %title
                        </lhs>
                        <op>
                            2
                        </op>
                        <rhs>
                            太郎*
                        </rhs>
                    </condition>
                    <condition sr="c1" ve="3">
                        <lhs>
                            %title
                        </lhs>
                        <op>
                            2
                        </op>
                        <rhs>
                            次郎*
                        </rhs>
                    </condition>
                </conditionlist>
            </int>
        </action>
        <action sr="act5" ve="7">
            <code>
                192
            </code>
            <int sr="arg0" val="1">
                <str sr="arg1" ve="3">
                    Procyon
                </str>
            </int>
            <int sr="arg2" val="5">
                <conditionlist sr="if">
                    <condition sr="c0" ve="3">
                        <lhs>
                            %sound
                        </lhs>
                        <op>
                            0
                        </op>
                        <rhs>
                            1
                        </rhs>
                    </condition>
                </conditionlist>
            </int>
        </action>
        <action sr="act6" ve="7">
            <code>
                192
            </code>
            <int sr="arg0" val="1">
                <str sr="arg1" ve="3">
                    Ray
                </str>
            </int>
            <int sr="arg2" val="5">
                <conditionlist sr="if">
                    <condition sr="c0" ve="3">
                        <lhs>
                            %sound
                        </lhs>
                        <op>
                            0
                        </op>
                        <rhs>
                            0
                        </rhs>
                    </condition>
                </conditionlist>
            </int>
        </action>
    </task>
</taskerdata>

XMail Server の SPF(Sender Policy Framework) 対応

Changes

[Fusen:1] aaaaaaaaaaa

#navi #navi

 
Thu 1 Jan 1970
 
 

[Fusen:1 by 通りすがりさん]455

2008 4月 9 (水)
 
ページ内コンテンツ
    • XMail Server の SPF(Sender Policy Framework) 対応
    • Mail::SPF::Query が必要です
    • フィルター定義
      • プログラムソース

XMail Server の SPF(Sender Policy Framework) 対応 anchor.png

xpWiki のプラグイン moblog では、メールによってページを作成することができますが、認証判断は送信元メールアドレスのみで行っています。

できるだけ簡単に投稿できるようにしたかったので、敢えて Subject や本文にパスワードを入れたりする仕様にしなかったのですが、他人の成りすましによる偽投稿が可能なので、なんとか防がなければいけません。

その、動作検証するのに SPF 環境が必要なので、自宅サーバーの XMail Server (Win32) に SPF フィルターを導入しました。

調べてみると、XMail の Web サイトに、xm-spf.pl という perl のフィルターがありましたので、導入してみましたが上手く動きません。早速、ソースを眺めてみましたが、久々の perl なので、結構手間取りましたが、数箇所おかしなところがあったので、修正し、Mail Header に "Received-SPF:" を付け加えるフィルターも書いてみました。

Mail::SPF::Query のレスポンスが "fail" だった場合、XMail に終了コード(4)を返しますので、問答無用で受け取り拒否します。

Page Top

Mail::SPF::Query が必要です anchor.png

サーバー機のコマンドプロンプトで

>cpan
>install Mail::SPF::Query

として、インストールして置いてください。

Page Top

フィルター定義 anchor.png

  • SMTP RCPT 後処理 フィルター (Mail::SPF::Query を使用して判定します)
    • filespf_rcpt.pl
    • フィルター定義
      起動コマンド最初の引数その他の引数
      C:\Perl\bin\perl.exe[絶対パス]/spf_rcpt.pl--file $(FILE) --tmp c:/winnt/temp
      C:\Perl\bin は環境に合わせる--tmp の引数は、システムのテンポラリディレクトリ
  • SMTPセッション終了後処理 (Mail Header に "Received-SPF: [判定結果]" を書き加えます。)
    • filespf_in.pl
    • フィルター定義
      送信者アドレスあて先アドレスリモートIPローカルIP起動ファイル起動コマンドと引数
      **0.0.0.0/00.0.0.0/0spf_in.tab"C:\Perl\bin\perl.exe" "[絶対パス]/spf_in.pl" "$(FILE)" "c:/winnt/temp"
      C:\Perl\bin は環境に合わせる
      c:/winnt/temp は SMTP RCPT 後処理 フィルターと合わせる
    • SpamAssassin を利用しているなら、spf_in.tab を SpamAssassin の定義の前に持ってくると、SpamAssassin で Header 判定できるようになります。
Page Top

プログラムソース anchor.png

filespf_rcpt.pl
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
-
|
!
-
|
!
!
 
-
|
!
 
-
|
|
|
|
-
|
|
!
-
!
|
|
-
!
-
!
|
-
!
|
|
-
!
-
|
|
-
|
!
!
 
-
|
!
 
 
-
|
-
-
|
!
|
!
!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
-
-
|
|
|
|
!
!
!
 
-
|
|
!
 
 
#!/usr/bin/perl
#
# spf_rcpt.pl based on xm-spf.pl by nao-pon (hypweb.net)
#
# xm-spf.pl by Davide Libenzi ( XMail Perl filter for SPF )
# Copyright (C) 2004  Davide Libenzi
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# Davide Libenzi <davidel@xmailserver.org>
#
 
use strict;
use Mail::SPF::Query;
 
my $opt_file = undef;
my $opt_ip = undef;
my $opt_sender = undef;
my $opt_helo = undef;
my $opt_rcpt_to = undef;
my $opt_local = undef;
my $opt_trusted = undef;
my $opt_guess = undef;
my $opt_exp = undef;
my $opt_max_lookup = undef;
my $opt_sanitize = undef;
my $opt_name = "spfquery";
my $opt_debug = 0;
my $opt_keep_comments = 0;
my $opt_fallback = undef;
my $opt_override = undef;
my $opt_dns = undef;
my $opt_help = undef;
my $opt_pcode = 0;
my $opt_fcode = 3;
my @opt_bypass = ();
 
push(@opt_bypass, "^127\\.0\\.0\\.1\$");
my $mid;
my $opt_tmp = undef;
my $i;
 
for ($i = 0; $i <= $#ARGV; $i++) {
    if ($ARGV[$i] eq "--file") {
        if (++$i <= $#ARGV) {
            $opt_file = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--tmp") {
        if (++$i <= $#ARGV) {
            $opt_tmp = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--ip") {
        if (++$i <= $#ARGV) {
            $opt_ip = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--sender") {
        if (++$i <= $#ARGV) {
            $opt_sender = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--helo") {
        if (++$i <= $#ARGV) {
            $opt_helo = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--rcpt-to") {
        if (++$i <= $#ARGV) {
            $opt_rcpt_to = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--debug") {
        if (++$i <= $#ARGV) {
            $opt_debug = int($ARGV[$i]);
        }
    } elsif ($ARGV[$i] eq "--local") {
        if (++$i <= $#ARGV) {
            $opt_local = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--trusted") {
        if (++$i <= $#ARGV) {
            $opt_trusted = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--guess") {
        if (++$i <= $#ARGV) {
            $opt_guess = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--expl") {
        if (++$i <= $#ARGV) {
            $opt_exp = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--max-lookup") {
        if (++$i <= $#ARGV) {
            $opt_max_lookup = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--sanitize") {
        if (++$i <= $#ARGV) {
            $opt_sanitize = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--name") {
        if (++$i <= $#ARGV) {
            $opt_name = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--fallback") {
        if (++$i <= $#ARGV) {
            $opt_fallback = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--override") {
        if (++$i <= $#ARGV) {
            $opt_override = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--dns") {
        if (++$i <= $#ARGV) {
            $opt_dns = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--pcode") {
        if (++$i <= $#ARGV) {
            $opt_pcode = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--fcode") {
        if (++$i <= $#ARGV) {
            $opt_fcode = $ARGV[$i];
        }
    } elsif ($ARGV[$i] eq "--bypass") {
        if (++$i <= $#ARGV) {
            push(@opt_bypass, $ARGV[$i]);
        }
    } elsif ($ARGV[$i] eq "--help") {
        $opt_help = 1;
    }
}
 
if ($opt_help) {
    exit($opt_pcode);
}
 
if (defined($opt_file)) {
 
    my $ln;
    my @hvars;
 
    if (!open(MFIL, "$opt_file")) {
        print STDERR "unable to open ${opt_file}\n";
        exit($opt_pcode);
    }
# Read message info
    $ln = <MFIL>;
    chomp($ln);
    @hvars = split(/;/, $ln);
# Discard SMTP domain
    $ln = <MFIL>;
# Discard message ID
    $mid = <MFIL>;
    chomp($mid);
# Read MAIL FROM
    $ln = <MFIL>;
    chomp($ln);
    close(MFIL);
# Handle both cases of early message file and spool file
    ($opt_sender = $ln) =~ s/[^<]+<([^>]*)>.*/$1/;
    if ($#hvars > 3) {
        $opt_helo = $hvars[0];
        ($opt_ip = $hvars[1]) =~ s/\[([^:]+)\]:[0-9]+/$1/;
    } else {
        ($opt_ip = $hvars[0]) =~ s/\[([^:]+)\]:[0-9]+/$1/;
    }
}
 
if (!defined($opt_helo) && ($opt_sender =~ /\@/)) {
    ($opt_helo = $opt_sender) =~ s/.*\@(.*)/$1/;
}
 
my $reg;
for ($i = 0; $i <= $#opt_bypass; $i++) {
    $reg = $opt_bypass[$i];
    if ($opt_ip =~ /$reg/) {
        if ($opt_debug) {
            print "whitelist ip ${opt_ip}\n";
        }
        exit($opt_pcode);
    }
}
 
my $query = new Mail::SPF::Query(ipv4       => $opt_ip,
                 sender     => $opt_sender,
                 helo       => $opt_helo,
                 local      => $opt_local,
                 trusted    => $opt_trusted,
                 guess      => $opt_guess,
                 default_explanation => $opt_exp,
                 max_lookup => $opt_max_lookup,
                 sanitize   => $opt_sanitize,
                 myhostname => $opt_name,
                 fallback   => $opt_fallback,
                 override   => $opt_override,
                 debug      => $opt_debug,
                 );
my ($result, $smtp_comment, $header_comment, $spf_record, $detail) = $query->result();
my $rcode = ($result eq "fail") ? $opt_fcode: $opt_pcode;
 
if (defined($opt_file)) {
    if ($rcode eq 0) {
        if (defined($opt_tmp) && $mid){
            open(FILE,">${opt_tmp}/${mid}.SPF");
                flock(FILE,2);
                print FILE "Received-SPF: ".$result." ( $header_comment )";
            close(FILE);
        }
    }
}
 
if ($opt_debug) {
    print $query->result . "\n";
    print $rcode;
}
 
exit($rcode);
filespf_in.pl
Everything is expanded.Everything is shortened.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
-
|
|
|
|
!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
|
|
-
|
!
-
|
|
|
|
|
|
|
|
|
|
!
|
!
 
 
 
 
 
 
 
#!/usr/bin/perl
#
# spf_in.pl by nao-pon (hypweb.net)
# License: GPL
#
 
use strict;
 
my $file = $ARGV[0];
my $temp = $ARGV[1];
 
open(FILE, $file) || exit(0);
my @tmp = <FILE>;
close(FILE);
 
if (!@tmp) {exit(0);}
 
my @dat = ();
my $check = 0;
my $i = 0;
my $mid;
my $spf_file;
my $spf;
foreach(@tmp){
    $i++;
    chomp;
    if ($i eq 3) {
        $mid = $_;
    }
    if (!$check && /^<<MAIL\-DATA>>$/) {
        $check = 1;
        push(@dat, "$_\n");
        $spf_file = "${temp}/${mid}.SPF";
        open(FILE, $spf_file) || exit(0);
        $spf = <FILE>;
        close(FILE);
        unlink($spf_file);
        chomp($spf);
        push(@dat, "$spf\n");
        next;
    }
    push(@dat, "$_\n");
}
 
open(FILE,">$file");
    flock(FILE,2);
    print FILE @dat;
close(FILE);
 
exit(7);

elFinder 2.1.6, X-elFinder 2.01 をリリース

Changes

#block(right,width:230px,around){{

RSS of nao-pon/blog
2016 1月 19 (火)
 

elFinder 2.1.6, X-elFinder 2.01 をリリース anchor.png

elFinder 2.1.6 と それを搭載した X-elFinder 2.01 をリリースしました。

並べ替え可能なお気に入り, sortable_places.png
並べ替え可能なお気に入り
検索画面でのホルダを開くメニュー, open_folder.png
検索画面でのホルダを開くメニュー
JPEG保存時の品質指定, jpeg_quality.png
JPEG保存時の品質指定
自動更新ボタン, auto_sync_button.png
自動更新ボタン
Page Top

elFinder 2.1.6 anchor.png

Changelog の日本語バージョン

  • Fixed #1074 マルチボリューム時の startPath オプションの適正化
  • Fixed #1172 リネーム時にマウスクリックで確定させるとエラーメッセージが大量に出る問題の修正 (enbug)
  • Fixed #1174 ページ内に複数の elFinder インスタンスが存在する場合に完全対応
  • Plugin: AutoResize に新しいオプション `preserveExif`(Exif 情報を残す) の追加 ( Imagick クラス使用時のみ )
  • Fixed #179 JPEG の保存時に品質を指定可能
  • Fixed #1176 HTTP ロングポーリングによる自動更新と inotifywait に対応
  • Fixed #1181 LocalFileSystem ボリームでの検索が case sensitive になっていた問題を修正 & 検索高速化
  • コンテキストメニューの「リロード」メニューに「自動更新」ボタンを追加
  • クライアント(JavaScript 側)設定に `syncStart` を追加
  • 検索結果画面の最適化 - ツールチップに保存場所を表示など
  • ボリュームルートオプションに検索時タイムアウトの `searchTimeout` (デフォルト 30秒) を追加
  • クライアント側コマンドに `opendir` を追加 - 検索結果画面でフォルダーを開くコンテキストメニュー
  • 「お気に入り」を並べ替え可能とした
  • Fixed #1193 ファイルを開く場合に個別 URL でアクセス可能であればその URL で開く
  • その他のバグ修正や調整など
Page Top

X-elFinder 2.01 anchor.png

  • elFinder 2.1.6 をマージ
  • 管理画面に新規項目追加
    • 自動更新間隔(管理者):秒
      • 自動で更新チェックをする間隔を秒数で指定します。
    • 自動更新間隔(特定グループ):秒
    • 自動更新間隔(登録ユーザー):秒
    • 自動更新間隔(ゲスト):秒
    • すぐに自動更新を開始する
      • コンテキストメニューの「リロード」で自動更新の開始・停止ができます。
  • デフォルトで使用する jQuery を 1.12.0 に変更
  • xelfinder_db ボリューム(共有ホルダ)でのホルダ指定の検索を正常化
  • その他細かい調整

elFinder 2.1.5, X-elFinder 1.99 をリリース

Changes

elFinder 2.1.4 以降の更新内容です。
elFinder-rm-dialog.png

    • 2015-12-26 Naoki Sawada
    • 2015-12-16 Naoki Sawada
RSS of nao-pon/blog
2015 12月 26 (土)
 

elFinder 2.1.5, X-elFinder 1.99 をリリース anchor.png

elFinder 2.1.5 および elFinder 2.1.5 を搭載した X-elFinder 1.99 をリリースしました。

elFinder 2.1.4 以降の更新内容です。
elFinder-rm-dialog.png

Changlog
  • 2015-12-26 Naoki Sawada
    • elFinder (2.1.5):
      1. Fixed bug that can't in writable with `chmod`
      2. Show remove item info in confirm dialog on `rm` action
      3. Fixed #1165, MIME types maintenance (doc, dot, xlt, xla)
      4. Fixed problem if filename included character that can't be json encode
      5. Added option `convmap` to Normalizer plugin
      6. And some minor bug fixes
  • 2015-12-16 Naoki Sawada
    • elFinder (2.1.4):
      1. Fixed #1163 Dropbox driver supported windows server
      2. Fixed search problem on Windows server

elFinder 2.1.4 では、主に Windows サーバー向けの修正。
elFinder 2.1.5 では、

  • 属性変更で書き込み禁止にすると、書き込み許可に戻せないバグの修正
  • アイテム削除時の確認ダイアログにアイテムの詳細情報を表示
  • MIMEタイプの誤り修正
  • ファイル名に JSON エンコードできない文字が含まれるアイテムが存在すると何も表示されなくなる問題の修正
  • Normalizer プラグインに `convmap` オプションを追加
  • その他のバグ修正など

などのが含まれています。

なお、X-elFinder は、X-update でアップデートできます。

xpWiki 5.02.14 リリース

Changes
  • xpWiki開発日記 - ダウンロード

[Fusen:1] sdsa

#snsref(https://www.facebook.com/naopon.s/posts/718505694898672)

#snsref(http://hpwb.net/1wojehh

snsref anchor.pngEdit

#snsref(https://www.facebook.com/groups/XOOPSCube/permalink/806498106081788/)

#snsref(http://hpwb.net/1tThYpF

2014 10月 24 (金)
 
ページ内コンテンツ
  • xpWiki 5.02.14 リリース
    • 概要 (5.02.04 〜 5.02.14 での更新分)
    • snsref
    • ダウンロード
    • github 更新内容
    • 一行コメント

xpWiki 5.02.14 リリース anchor.png Edit

module_icon.pngTag: 新規プラグイン snsref Bugfix d3pipes グローバルサーチ PHP5.4 mysqli gmap aws isbn dump

ふと、気付いたのですが xpWiki の開発日記を書くのを忘れていました。 :hammer:

前回からの更新分をまとめて書きます。(*ノω・*)テヘ

Page Top

概要 (5.02.04 〜 5.02.14 での更新分) anchor.png Edit

  • d4da4da: add search icon into result of XOOPS global search
  • f14b0f4: correction of htmlspecialchars() for PHP 5.4 on non UTF-8
  • dfc60dd: [core:xpwiki] give keyword "public static" to "static function"
  • 9c6855e: [language] fix typo (except Japanese)
  • aaeb78b0: [plugin] change mysql_* function to DB object method
  • cde059d: [xoops integration] switch MySQL API from mysql to mysqli
  • 9618c36: [plugin:dump] support mysqli (XCL future function)
  • bc5a453: xpWiki version 5.02.4
  • b1d9513: [integration:xoops] correction for MySQLi Connection (mysqli API)
  • a3eff0d: [d3pipes.plugin] bugfix about multi byte values of base page
    • d3pipes の内部情報取得用パイプのプラグインで base page に、英字以外の値を設定できない問題の修正。
  • 3c3c548: [plugin:update_entities] get DTD by func->http_request()
  • e2b36c8: [plugin:aws,isbn] cache control with "root->rtf['use_cache_always']"
    • 検索時などで、検索対象になったページの内容取得時に、できるだけページキャッシュを利用するようになっているのですが、 ページキャッシュがなく、Amazon のデータもキャッシュ期限が切れていると、それらのページの amazon データを取得していました。 結果、検索結果の表示までにかなり時間が掛かることがあるので、検索時の本文取得は、キャッシュがある限り期限切れでもそれを利用するようにしました。
  • 1399e15: [plugin:gmap] fix popup of google search bar
  • 3b7c471: [plugin:aws] fix htmlspecialchars_decode (add: ENT_QUOTES)
  • 367e587: [plugin:clear] add inline-plugin (&clear([right|left]);)
  • 500bcb8: [core:loader] support PHP configuration `zlib.output_compression=on`
  • 1993610: xpWiki version 5.02.5
  • c30b0cb: [core:func] correction for PHP < 5.3.2 (htmlspecialchars)
    • PHP 5.3.2 未満の環境で、Wiki ページが正常に表示されなくなっていた問題の修正。
  • e076e40: xpWiki version 5.02.6
  • 7ea2aa8: [plugin:replacer] support str_rules replacement
    • ページ保存時に str_rules によるユーザー定義置換を行うようにした。
  • 63c8d12: [plugin:gsearch] fix link url problem
    • URL に "%" が含まれるなどの場合に正しくリンクされない問題の修正。

      ref. http://hpwb.net/1tj7SNZ (xoops.hypweb.net)

  • b99f1a7: [core:func] change for TwitterOAuth
  • 99acb79: xpWiki version 5.02.7
  • 8b5258a: [FCKEditor] fix Uncaugh security Error on Chrome
  • f67dd4b: [plugin:dump] fix Warning error
  • 0a91255: [core:func] fix Warning error
  • f20ad4b: [rich_editor] fix problem of <h> tag anchor string
  • b25ab06: clean up ( xoops_wrapper.php )
  • a72484b: [core:init] check is supported 'eucJP-win' on PHP
  • 0b42279: [plugin:dbsync] tune up
  • a295038: [plugin:code] change error reporting level ... orz ...
  • 230379c: [core:root] fix root->NotePattern regex
  • 3692ba4: [plugin:attach] fix problem of pagecss by "style.css" upload
    • "style.css" をアプロードすることにより、ページ専用 CSS を適用できる機能が正常に働かなくなっていた問題の修正。

      ref. http://hpwb.net/OBfSaH (xoops.hypweb.net)

      :仕様変更|

      以前は、style.css をアップロードした場合は、ページへの添付ファイルとしては扱われず、ページ専用 CSS の設定のみ行われていましたが、今回より style.css として、ページの添付ファイルとしても保存されるようになりました。

      ただし、ページ専用 CSS とページにファイルとして添付された style.css は全く別のものになりますので、ページの添付ファイルである style.css を削除しても、ページ専用 CSS には影響ありません。

      目的としては、ページ専用 CSS にどのような内容が設定されるかを知ることができるように、添付ファイルとしても残すようにしました。

      また、以前は CSS 中での外部サイト画像の参照部分を一律、除外していましたが、今回より管理者以外の者がアップロードした場合のみ、外部URL等を除外するようにしました。

  • 75922ec: xpWiki version 5.02.8
  • 0fd3ac1: [plugin:ajaxtree] change fwrite() to file_put_contents()
  • 3e2607b: [core:loader] do urlencode for URI of X-Sendfile's param
  • 5b41909: xpWiki version 5.02.9
  • 56934e3: fix for IE11 problem
    • ELEMENT.uniqueID でのエレメントID取得を IE 以外のブラウザで対応させるための部分で、IE 11 の判定ができてなくて、JavaScript のスタックエラーになり、他の JavaScript が正常に動作しないことがある問題の修正。
  • 36ee2da: xpWiki version 5.02.10
  • 492ec77: [plugin:ref] support X-elFinder with Coll-URI on XCL 2.2
  • 9ccb7b9: xpWiki version 5.02.11
  • 9eec0b4: [plugin:ref] fix typo in HTML5 `<video>`
  • ecc547a: [plugin:showrss] add conf (array) $this->conf['ng_sites']
    • A config that exclude URL from results.
  • cfeda39: xpWiki version 5.02.12
  • 3f8532e: set GoogleMapsAPI version to "3" for fix of ctrl elements problem
  • 04d2caf: xpWiki version 5.02.13
  • df65d76: new plugin which embeds the contribution of SNS
    • Supported Facebook, Google+, Instagram, Twitter and Vine.

      #snsref(SNS Post URL[,width:(Digit)][,media:(1|0)][,thread:(1|0)][,caption:(1|0)][,audio:(0|1)][,related:(1:0)][,simple])

      width
      Width(px) for Facebook, Instagram, Twitter and Vine. Google+ is not effective.
      media
      for Twitter
      thread
      for Twitter
      caption
      for Instagram
      audio
      for Vine
      related
      for Vine
      simple
      for Vine
  • 59eb770: xpWiki version 5.02.14
Page Top

snsref anchor.png Edit

#snsref(https://www.facebook.com/naopon.s/posts/718505694898672)
fusen.dat
id.1:
通りすがりさん : : 15/02/16 16:01

sdsa

xpWiki 5.02.3 リリース

Changes
  • xpWiki開発日記 - ダウンロード
  • I really like it when individuals come together and share opinions. Great website, stick with it!

    my weblog :: timber log cabins; Jennifer, -- JenniferEdit 2013-10-22 (Tue) 21:45:50 New!
2013 8月 16 (金)
 
ページ内コンテンツ
  • xpWiki 5.02.3 リリース
    • 概要
    • ダウンロード
    • github 更新内容
    • 一行コメント

xpWiki 5.02.3 リリース anchor.png Edit

module_icon.pngTag: Bugfix リッチエディタ

Page Top

概要 anchor.png Edit

xpWiki 5.02.2 リリース

Changes
  • xpWiki開発日記 - ダウンロード
2013 8月 11 (日)
 
ページ内コンテンツ
  • xpWiki 5.02.2 リリース
    • 概要
    • ダウンロード
    • github 更新内容
    • 一行コメント

xpWiki 5.02.2 リリース anchor.png Edit

module_icon.pngTag: プラグイン comment pcomment flowplayer

Page Top

概要 anchor.png Edit

  • 5c3245a: [library] update flowplayer to 3.2.16
  • 22f210c: [core] support HypCommon's CSRF protection (on Ajax editing)
  • 8defb99: [plugin:comment,pcomment] add confug "ALLOW_URL_IN_NAME"
    • 名前欄に URL と ドメイン表記の入力を許可する設定を追加しました。デフォルトで "false"(不許可) になっています。
  • 91df7e8: xpWiki version 5.02.2

xpWiki 5.02.1 リリース

Changes
  • xpWiki開発日記 - ダウンロード

あと、コミットログに書き忘れてしまったのですが、バックアップ&リストアで文字コードの異なる環境へのリストアで、Wikiデータ末尾にNULLバイトのゴミが残り、正常にページが表示できないことがある問題も修正されています。

2013 7月 2 (火)
 
ページ内コンテンツ
  • xpWiki 5.02.1 リリース
    • 概要
    • ダウンロード
    • github 更新内容
    • 一行コメント

xpWiki 5.02.1 リリース anchor.png Edit

module_icon.pngTag: Bugfix Plugin tracker ページ別名

xpWiki のページ別名をメモリ上に展開する方式から MySQL データベースを利用する方法へ変更しました。

ページ別名の数が増えるに従いメモリ使用量が増えるので、DB 使うべきだと以前から思っていたのですが、やっと対応しました。

データベースに新しいテーブルが追加されているので、モジュールアップデートが必須です。

あと、コミットログに書き忘れてしまったのですが、バックアップリストアで文字コードの異なる環境へのリストアで、Wikiデータ末尾にNULLバイトのゴミが残り、正常にページが表示できないことがある問題も修正されています。

Page Top

概要 anchor.png Edit

  • 0899386: [plugin:tracker] fix "IS NULL" cell style with default value
    • tracker プラグインの config 設定で、[条件]が "IS NULL" の場合に設定した、 [セルの書式] が、[ページに記入する書式] に値が入っていると効かない問題を修正。
  • f22a0ad: [with image manager] remove PCRE "S" attr from unnecessary pattern
  • 60aa785: [plugin:tracker] fix enbug of @0899386
  • 5f14396: [plugin:tracker] fix bug of tracker_list limit option
    • tracker_list プラグインで、表示件数のオプション指定をすると、ページが表示されない問題の修正。
  • c95a881: [skin] fix notice error of "pukiwiki" & "xpwiki" on html side
    • スキン "pukiwiki" と "xpwiki" での Notice エラーの修正。(機能的な変更なし)
  • db28a06: use MySQL DB for page-name aliases
    • ページ別名のデータを MySQL データベース保存し、利用するようにした。
  • 45bbc2d: xpWiki version 5.02.1

xpWiki 5.01.32 リリース

Changes
  • 25 Hottest Celebrities Who Posed Nude Emma Watson. Alicia Key. Alyson Hannigan. Angelina Jolie. Cameron Diaz. Demi Moore. Jennifer Lawrence. Jessica Alba. http://hpwb.net/1NGTM0n -- 通りすがりさんEdit 2015-12-27 (Sun) 00:08:15 New!
  • xpWiki開発日記 - ダウンロード
2013 6月 24 (月)
 
ページ内コンテンツ
  • xpWiki 5.01.32 リリース
    • 概要
    • ダウンロード
    • github 更新内容
    • 一行コメント

xpWiki 5.01.32 リリース anchor.png Edit

module_icon.pngTag: Bugfix プラグイン calendar2 正規表現 UTF-8 pukiwiki.ini.php

Page Top

概要 anchor.png Edit

  • aebd793: [plugin:calendar2] fix invalid HTML (thx Misaki)
    • calendar2 プラグインで、"off" オプションを指定しない場合に、`</div>` が一つ余分に出力され、 不正な HTML となっていたのを修正。 ref. http://hpwb.net/18auoxw (xoops.hypweb.net)
  • 9f77989: xpWiki version 5.01.30
  • 84acff9: [core:pukiwiki.ini] add config "root->autolink_nonword_reg = ''"
    • $root->autolink_nonword_reg = ''; 非単語構成文字の正規表現 指定しない場合、 UTF-8 の日本語環境下では '[^a-zA-Z0-9_]' それ以外は '\W' が使用される。
  • a876d8a: xpWiki version 5.01.31
  • 4a02729: [xpwiki.js] change XpWikiPopup.zIndex to 99999"
  • a319972: [block_function] fix notice error (thx nonn50)
  • 0dbb7eb: change cont['LC_CTYPE'] to cont['LANG'] on et_autolink_regex_pre_after()
  • 30155d7: [plugin:ref] fix warning error with fetch_options()
    • fetch_options() の引数が、継承元クラスと齟齬があったのを修正した。
  • 59a15c4: [Core] add root->str_rules_callback
    • preg_replace_callback を使用する置換ルールの新設 'デリミタを含む正規表現パターン' => 置換後の文字列を返す関数表現
  • cfeff4c: replace regex '\w' to '[_0-9a-zA-Z]'
  • 5b3fc6c: xpWiki Version 5.01.32

xpWiki 5.01.29 リリース

Changes
  • xpWiki開発日記 - ダウンロード
2013 6月 9 (日)
 
ページ内コンテンツ
  • xpWiki 5.01.29 リリース
    • 概要
    • ダウンロード
    • github 更新内容
    • 一行コメント

xpWiki 5.01.29 リリース anchor.png Edit

module_icon.pngTag: Wikiエディタ プラグイン bloackpage

Page Top

概要 anchor.png Edit

  • 04e30d5: [xpwiki.js] support "TEXTAREA class name 'xcode'"
    • テキストエリアのクラス名に "xcode" がある場合は、Wiki エディタを使用しないようにした。
  • dd78198: [Core.plugin] do trim on fetch_options() as default
    • プラグインの fetch_options() メソッドで、 trim() で、与えられたパラメタの前後空白を除去することを デフォルトとした。 前後の空白を除去させたくない場合は、第一引数の配列に ( '_opt:notrim' => true ) を与える。
  • add6f9f: [plugin:blockpage] support case insensitive of pagename
    • ページ名の大文字小文字を区別しない設定に対応。
  • 6b06ea2: xpWiki version 5.01.29

xpWiki 5.01.28 リリース

Changes
  • xpWiki開発日記 - ダウンロード
2013 6月 5 (水)
 
ページ内コンテンツ
  • xpWiki 5.01.28 リリース
    • 概要
    • ダウンロード
    • github 更新内容
    • 一行コメント

xpWiki 5.01.28 リリース anchor.png Edit

module_icon.pngTag: ブロック Bugfix 閲覧権限 Enbug

xpWiki 5.01.26 に Fatal Error を引き起こすバグを作りこんでしまったので、緊急リリースしました。

Page Top

概要 anchor.png Edit

  • aea8b26: [xoops block] fix Fatal Error on block rendering with Target page option
    • ページ表示ブロックで「限定表示宛先ページ(ワイルドカード = *)」オプションを指定すると Fatal Error に なってしまう問題の修正。 (thx nonn50)
  • cf0d5f2: [xoops block] fix target page problem, "Dir::Target" was not work
  • 2016f36: xpWiki version 5.01.27
  • 261134c: [xoops block] fix problem of "check readable page"
    • ページ表示ブロックの表示するページの閲覧権限のチェックが正常に行われていない問題の修正。
  • fd2ced9: xpWiki version 5.01.28

xpWiki 5.01.26 リリース

Changes
  • xpWiki開発日記 - ダウンロード

if([page=PAGENAME][,uid=NUMBER[&NUMBER]][,gid=NUMBER[&NUMBER]][,admin][,owner][,user][,guest][,writable]){{

if([page=PAGENAME][,uid=NUMBAR[&NUMBAR]][,gid=NUMBAR[&NUMBAR]][,admin][,owner][,user][,guest][,writable]){{

if([page=PAGENAME][,uid=NUMBAR[&NUMBAR]][,gid=NUMBAR[&NUMBAR]][,admin][,owner][,user][,guest][,writable]){{
      1. ページ表示のぺージ名に ID の頭に # を付け "#ID" と指定する。 当該ブロックを表示したい宛先ページを「ページ名」または「xpWikiディレクトリ名::ページ名」の形式で指定する。
2013 6月 4 (火)
 
ページ内コンテンツ
  • xpWiki 5.01.26 リリース
    • 概要
    • ダウンロード
    • github 更新内容
    • 一行コメント

xpWiki 5.01.26 リリース anchor.png Edit

module_icon.pngTag: ブロック 新規プラグイン if menu プラグイン Bugfix

Page Top

概要 anchor.png Edit

  • 2bd6dc7: fckxpwiki version 20130521
  • e265c7a: [core] use native function hex2bin() if exists (for PHP 5.4+)
  • 9119e48: add new plugin `#blockpage(ID,PAGENAME)`
    • ページ表示ブロックに、指定したページを表示するプラグイン "#blockpage" を新規追加。
      1. ページ表示のぺージ名に ID の頭に # を付け "#ID" と指定する。
      2. ブロックを表示したいページで、#blockpage(ID,ページ名) と記述する。
      3. 当該ブロックに、指定されたページが表示される
  • 8450a2c: [plugin:menu] bugfix of caching page
    • "#menu" プラグインで、任意のページをメニューページとして指定した場合に、 ページキャッシュでキャッシュされたページで正常に動作しない問題の修正。
  • 1f3dceb: [plugin:blockpage] fix syntax error
  • a63f72f: [block_function] new XpWiki -> XpWiki::getSingleton
  • 788c753: [block] add a new option "Target page" into "A Page Show" block
    • ページ表示ブロックに新しいオプション「限定表示宛先ページ」を追加。 当該ブロックを表示したい宛先ページを「ページ名」または「xpWikiディレクトリ名::ページ名」の形式で指定する。 ページ名にはワイルドカードとして「*」が使用可能。
  • e3946df: [plugin:blockpage] use fetch_options()
  • 0a0d67a: [core:func] add func `str_match_wildcard($pattern, $str, $ci = null)`
  • 70768e0: [plugin:if] add a new plugin "#if"
    • 与えられた条件により、内容を表示するプラグイン。 複数の条件が与えられた場合は、そのうちどれかひとつでも当てはまると表示される。(OR)

      ブロック表示内で使用することで、特定のページにのみ出現する内容を記述することができる。

      PAGENAME は、ワイルドカードとして "*" が利用可能。 "*" そのものがページ名に含まれる場合は "\*" とエスケープする。

      1
      2
      3
      
      if([page=PAGENAME][,uid=NUMBER[&NUMBER]][,gid=NUMBER[&NUMBER]][,admin][,owner][,user][,guest][,writable]){{
      Wiki Contents
      }}
  • f9a53d2: xpWiki version 5.01.26
To Top