» 2012のブログ記事

iframeタグを使うと自動的に削除され、反映しな場合の対策。

functions.php
に次のコードを追加する。

function extended_enable_elements($init) {
$init['extended_valid_elements']="iframe[src|width|height|name|align|style|scrolling|marginwidth|marginheight|frameborder]";
return $init;
}
add_filter('tiny_mce_before_init', 'extended_enable_elements');

 

jQuery Background Positionからjquery.bgpos.js
jQueryからjquery.jsをダウロードする。

画像を用意する。

basic.css

#bgpos h2	{
  clear:both;
  padding-top:20px;
}
#bgpos ul {
  list-style:none;
  margin:0;
  padding:0;
}
#bgpos ul:after{
  content:"";
  display:block;
  clear:both;
}
#bgpos li {
  float:left;
  height:30px;
  line-height:30px;
  width:120px;
  margin:0;
  padding:0;
  text-align:center;
}
#bgpos li a {
  display:block;
  height:100%;
  color:#FFF;
  text-decoration:none;
  border-right:1px solid #FFF;
}
#bgpos li a {
  background:url(bg2.jpg) repeat 0 0;
}
#bgpos li a:hover, li a:focus, li a:active {
  background-position:-150px 0;
}
#bgpos #a a {
  background:url(bg.jpg) repeat -20px 35px;
}
#bgpos #b a {
  background:url(bg2.jpg) repeat 0 0;
}
#bgpos #c a {
  background:url(bg3.jpg) repeat 0 0;
}
#bgpos #d a {
  background:url(bg4.jpg) repeat 0 0;
}

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="./jQuery_1.7.1.js"></script>
<script type="text/javascript" src="./jquery.bgpos.js"></script>

<link rel="stylesheet" type="text/css" href="./basic.css" />

<script type="text/javascript">

$(function(){
	$('#a a')
		.css( {backgroundPosition: "-20px 35px"} )
		.mouseover(function(){
			$(this).stop().animate({backgroundPosition:"(-20px 94px)"}, {duration:500})
		})
		.mouseout(function(){
			$(this).stop().animate({backgroundPosition:"(40px 35px)"}, {duration:200, complete:function(){
				$(this).css({backgroundPosition: "-20px 35px"})
			}})
		})
	$('#b a')
		.css( {backgroundPosition: "0 0"} )
		.mouseover(function(){
			$(this).stop().animate({backgroundPosition:"(-150px 0)"}, {duration:500})
		})
		.mouseout(function(){
			$(this).stop().animate({backgroundPosition:"(-300px 0)"}, {duration:200, complete:function(){
				$(this).css({backgroundPosition: "0 0"})
			}})
		})
	$('#c a')
		.css( {backgroundPosition: "0 0"} )
		.mouseover(function(){
			$(this).stop().animate({backgroundPosition:"(0 -250px)"}, {duration:500})
		})
		.mouseout(function(){
			$(this).stop().animate({backgroundPosition:"(0 0)"}, {duration:500})
		})
	$('#d a')
		.css( {backgroundPosition: "0 0"} )
		.mouseover(function(){
			$(this).stop().animate({backgroundPosition:"(0 -250px)"}, {duration:500})
		})
		.mouseout(function(){
			$(this).stop().animate({backgroundPosition:"(0 0)"}, {duration:500})
		})
});
</script>
[/java]

1
</head>
<body>
<div id="bgpos">
  <h2 id="h2_8">Example A: Top down</h2>
	<ul id="a">
		<li><a style="background-position: -20px 35px;" href="#">Home</a></li>
		<li><a style="background-position: -20px 35px;" href="#">About</a></li>
		<li><a style="background-position: -20px 35px;" href="#">Contact</a></li>
	</ul>
  <h2 id="h2_9">Example B: Right left</h2>
	<ul id="b">
		<li><a style="background-position: 0pt 0pt;" href="#">Home</a></li>
		<li><a style="background-position: 0pt 0pt;" href="#">About</a></li>
		<li><a style="background-position: 0pt 0pt;" href="#">Contact</a></li>
	</ul>
  <h2 id="h2_10">Example C: Fade 1-colour</h2>
	<ul id="c">
		<li><a style="background-position: 0pt 0pt;" href="#">Home</a></li>
		<li><a style="background-position: 0pt 0pt;" href="#">About</a></li>
		<li><a style="background-position: 0pt 0pt;" href="#">Contact</a></li>
	</ul>
  <h2 id="h2_11">Example D: Fade 2-colour</h2>
	<ul id="d">
		<li><a style="background-position: 0pt 0pt;" href="#">Home</a></li>
		<li><a style="background-position: 0pt 0pt;" href="#">About</a></li>
		<li><a style="background-position: 0pt 0pt;" href="#">Contact</a></li>
	</ul>
</div>
</body>
</html>

jquery.bgpos.js

/**
 * @author Alexander Farkas
 * v. 1.02
 */
(function($) {
	$.extend($.fx.step,{
	    backgroundPosition: function(fx) {
            if (fx.state === 0 && typeof fx.end == 'string') {
                var start = $.curCSS(fx.elem,'backgroundPosition');
                start = toArray(start);
                fx.start = [start[0],start[2]];
                var end = toArray(fx.end);
                fx.end = [end[0],end[2]];
                fx.unit = [end[1],end[3]];
			}
            var nowPosX = [];
            nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
            nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
            fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

           function toArray(strg){
               strg = strg.replace(/left|top/g,'0px');
               strg = strg.replace(/right|bottom/g,'100%');
               strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
               var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
               return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
           }
        }
	});
})(jQuery);

ただし、jQuery Background Positionからダウンロードしたjquery.bgpos.jsはIE8ではエラーになるので、次の様に修正

(function($)
{
    $.extend($.fx.step,
    {
        backgroundPosition: function(fx)
        {
            if (fx.state === 0 && typeof fx.end == 'string')
            {
                if(navigator.appName == 'Microsoft Internet Explorer')
                {
                    var start = $.curCSS(fx.elem,'backgroundPositionX');
                    start +=  ' ';
                    start += $.curCSS(fx.elem,'backgroundPositionY');
                }
                else
                {
                    var start = $.curCSS(fx.elem,'backgroundPosition');
                }
                start = toArray(start);
                fx.start = [start[0],start[2]];
                var end = toArray(fx.end);
                fx.end = [end[0],end[2]];
                fx.unit = [end[1],end[3]];
            }

            var nowPosX = [];
            nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
            nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
            fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

            function toArray(strg)
            {
                strg = strg.replace(/left|top/g,'0px');
                strg = strg.replace(/right|bottom/g,'100%');
                strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
                var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
                return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
            }
        }
    });
})(jQuery);

CSSファイル

div#header {
  color: #AF9D8F;
  background: #FFFFFF url(header.jpg) no-repeat center top;
  width: 800px;
  height: 200px;
}

div#header a {
  display: block;
  width: 800px; /*画像サイズ*/
  height: 200px;/*画像サイズ*/
}

htmlファイル

<div id="header">
   <a href="./index.php"></a>
</div>

日本語化と言っても「bb-attachments-init.php」内に英語でベタ書英語を日本語に書き換えるだけです。


$output="<h3>".__("Uploads")."</h3><ol>";	// start output
while(list($key,$value) = each($_FILES['bb_attachments']['name'])) {
	if(!empty($value)){

                  ↓


$output="<h3>".__("アップロードして投稿")."</h3><ol>";	// start output
while(list($key,$value) = each($_FILES['bb_attachments']['name'])) {
	if(!empty($value)){
$count=0; $allowed=__('allowed uploads:')." "; $exts=bb_attachments_lookup($bb_attachments['allowed']['extensions']);
$tcount=count($exts); foreach ($exts as $ext) {
$allowed.=$ext.' <span class="num">('.round(bb_attachments_lookup($bb_attachments['max']['size'],$ext)/1024,1).' KB)</span>, ';
$count++; if ($count==5 && $tcount>7) {$allowed.="<br />";}

                  ↓

$count=0; $allowed=__('アップロード可能なファイルタイプ:')." "; $exts=bb_attachments_lookup($bb_attachments['allowed']['extensions']);
$tcount=count($exts); foreach ($exts as $ext) {
$allowed.=$ext.' <span class="num">('.round(bb_attachments_lookup($bb_attachments['max']['size'],$ext)/1024,1).' KB)</span>, ';
$count++; if ($count==5 && $tcount>7) {$allowed.="<br />";}
else {echo '<input  type="hidden" name="bb_attachments" value="0" />';}
echo	'<h3 style="padding-bottom:10px;">'.__("Upload Files from your Computer").'</h3>
	<input  type="hidden" name="MAX_FILE_SIZE" value="'.$bb_attachments['max']['php_upload_limit'].'" />
	<span id="bb_attachments_file_sample">
	<input type="file" name="bb_attachments[]" size="50" /><br />
	<input type="file" name="bb_attachments[]" size="50" /><br />
	</span>

                  ↓

else {echo '<input  type="hidden" name="bb_attachments" value="0" />';}
echo	'<h3 style="padding-bottom:10px;">'.__("コンピュータからファイルをアップロード").'</h3>
	<input  type="hidden" name="MAX_FILE_SIZE" value="'.$bb_attachments['max']['php_upload_limit'].'" />
	<span id="bb_attachments_file_sample">
	<input type="file" name="bb_attachments[]" size="50" /><br />
	<input type="file" name="bb_attachments[]" size="50" /><br />
	</span>
else {echo '<span style="margin-right:20em;">&nbsp;</span>';}
echo	'<a href="javascript:void(0)" onClick="bb_attachment_inputs();">[+] '.__('more').'</a> &nbsp;
	<input style="font-weight:bold;" type="submit" class="submit" name="upload" value="'.__('Upload').'" />
	</div>';
if ($post_id) {echo '</form>';}
}

                  ↓

else {echo '<span style="margin-right:20em;">&nbsp;</span>';}
echo	'<a href="javascript:void(0)" onClick="bb_attachment_inputs();">[+] '.__('さらに追加').'</a> &nbsp;
	<input style="font-weight:bold;" type="submit" class="submit" name="upload" value="'.__('アップロードして投稿').'" />
	</div>';
if ($post_id) {echo '</form>';}
}


一般ユーザには表示させず、登録ユーザや管理者のみで利用できるフォーラムを作成するプラグイン。

Hidden Forums

my-pluginsディレクトリにアップロードして有効にする。

しかし、管理画面はないので、直接hidden-forums.phpを編集する必要がある。

$hidden_forums['hidden_forums']=array(1,2,3);
	// hide these forums, list by comma seperated number

ここのarray()に非表示にしたいフォーラムのIDナンバーを記述する。

$hidden_forums['allow_roles']['all_forums']=array('keymaster','administrator','member');
 	// these roles can always see ALL forums regardless

メンバーユーザーでもフォーラムを見ることが出来るように、’member’を追加する。


bbPress(bbPress 1.1)で画像などのファイルの添付機能をもつプラグイン。

bbPress Attachments « bbPress Plugin Browser

しかし、ココのにあるbbAttachemtns のバージョン0.2.9はうまく動かないとの報告がある。

フォーラムbbpress.org/plugins/topic/bb-attachments/page/18/に修正場の投稿があるのでこちらを使わせて頂く。

plugins-svn.bbpress.org/bb-attachments/trunk/

ただし、 zip などでまとめられていないので、bb-attachments と言うフォルダーを作ってそこに、ひとつづつファイルをダウンロードする。

その後、bbPressのmy-plugins にアップロードし、有効化する。

 

・Webドキュメントルートのひとつ上の階層に画像ディレクトリ「bb-attachments」を作成する。

例:/home/hoge/bb-attachments

・bb-attachmentsを書き込み可能にする。(777)

 

ここで問題が発生!

私の使っているロリ・ポップのサーバーはドキュメントルートより上の階層にはアクセス出来ない。

なので、この画像画像ディレクトリをbb-attachments.phpと同じ場所に置く事にした。

そのためにはbb-attachments.phpを一部修正する必要がある。

68行目

$bb_attachments['path']=dirname($_SERVER['DOCUMENT_ROOT'])."/bb-attachments/";

$bb_attachments['path']=rtrim(dirname(__FILE__),' /\\').'/bb-attachments/';

に修正する。

これで、ファイルをアップロード出来るようにはなったが、画像が表示されない。

画像ファイルがアップロードの際に壊れてしまっている様だ。

どうも、アップロード中にPHPでエラーが出てそのメッセージが画像ファイルに埋め込まれてしまっているのが原因のようだ。

<br />
<b>Warning</b>:  set_time_limit() [<a href='function.set-time-limit'>function.set-time-limit</a>]: Cannot set time limit in safe mode in
<b>/home/users/bbpress/my-plugins/bb-attachments/bb-attachments-init.php</b> on line <b>495</b>
<br />

bb-attachments-init.phpの495行目付近を調べると、set-time-limit(0)というPHPの関数が失敗しているようだ。

これは PHP の設定で、PHP が、”safe_mode ON” に設定されていると、set-time-limit がエラーになるようなので、safe mode を OFFにする必要がある。

php.ini を編集するればいいのだが、ロリ・ポップでは直接編集出来ないので、ロリ・ポップの管理画面から設定する。

その他、WordやExcelのファイルもアップロード出来る様に、bb-attachments.phpの26行目付近に’application/msword’ , ‘application/msexcel’ を追加する。

$bb_attachments['allowed']['mime_types']['default']=array('text/plain', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'application/pdf', 'application/x-pdf' , 'application/msword' , 'application/msexcel','application/zip','application/x-zip');  // for anyone that can upload

そして、アップロードファイル容量の上限はbb-attachments.phpの30行目〜35行目付近を変更する。


bbPressにログインしていないと、フォーラムが表示となるプラグイン「Hidden Forums」を導入した。

フォーラム毎に表示、非表示が選択出来るのだが、すべてを非表示にすると

Warning: Invalid argument supplied for foreach() in /home/users/2/<pass>/web/bbpress/bb-includes/functions.bb-forums.php on line 86

というWarningが発生した。

該当箇所は、プラグインのファイルではない。

どうも全部非表示にすると、表示すべき物が無いと言った感じのようだ。

で、unctions.bb-forums.php on line 86 を

 

$_forums = bb_append_meta( $_forums, 'forum' );

から、

$_forums = (array) bb_append_meta( $_forums, 'forum' );

に変更することで解決した。

bbpress.org/forums/topic/when-there-is-no-forum-to-display-warning-is-generated


VirtualBoxにプレビュー版「Windows8」をインストールしようとすると

Windows Recovrey Envirement
Your PC needs to be repaired
An unexpected error has occured
Error 0xc0000260

you’ill need to use the recovery tools on your installation media.if you dont have any installation media(like a disc or

USB drive).Contact your system Administrator or PC manufacturer

Press enter to try again
Press F8 to alternate Boot Option

のエラーが出てインストールできなかった。

 

対処策が見つかったので記載します。

VirtualBoxの設定画面で次の所にチェックを入れる。

 

 

これで、無事にインストールが出来た。


Windows8プレビュー版がリリースされた。

早速色々と試したいが、インストールする予備のパソコンが無いので、稼働中のWindows7上で仮想マシン「VMware Player」を使って実行する。

まずはWindows8プレビュー版のISOイメージを次の場所からダウンロード

Windows 8 Consumer Preview ISO イメージ

ここで、日本語版をダウンロードする。
34bit版と64bit版があるので注意する。

「VMware Player」のインストールについては、

仮想マシンを実行できる「VMware Player」

を参照ください。

まずは、「VMware Player」を起動する。

「新規仮想マシーンの作成」をクリックする。

「後でOSをインストール」を選択して「次へ」をクリックする。

ゲストOSで「Microsoft Windows」を選択し、バージョンは34bit版の場合は「Windows7」を64bit版の場合は「Windows7 x64」を選んで「次へ」をクリックする。

仮想マシーン名を「Windows 8」などに変更、インストール場所を指定する。
デフォルトでが、 「C:\Users\ユーザーー名\Documents\Virtual Machines\windows8」だが、ここでは「C:\Users\ユーザーー名\Virtual Machines\windows8」とした。

「仮想ディスクを単一ファイルとして格納」を選択し、「次へ」をクリックする。

「ハードウェアをカスタマイズ」をクリックする。

スライドバーの操作でメモリーを2GB以上に、

続いてプロセッサコアの割り振りで4コアに設定しておけば十分。その後「閉じる」をクリックする。

元に戻って、「完了」をクリックする。

メニューn戻るのでWindows 8を選択して「仮想マシーンの再生」をクリックする。

「OK]をクリックする。

この場面になったら、ウインドウ下の「CD/DVDの設定変更」をクリックする。

「ISOイメージファイルを使用する」を選択して、先ほどダウンロードしたWindows8のISOファイルを指定し、「OK」をクリックする。

「仮想マシーンの再起動」をクリックする。

インストールが開始される。

「次へ」をクリックする。

「今すぐインストール」をクリックする。

プロダクトキーを入力し、「次へ」をクリックする。

日本語版のプロダクト キー: DNJXJ-7XBW8-2378T-X22TX-BKG7J

同意するにチェックを入れて、「次へ」をクリックする。

「カスタム設定」を選択する。

「次へ」をクリックする。

セットアップが始まる。

背景の色を適当に選んで、任意のパソコン名称を入力して「次へ」をクリックする。

「簡単設定を行う」をクリックする。

Microsoft LiveIDのメールアドレスを入力して、「次へ」をクリックする。

パスワードを入力して「次へ」をクリックする。

セキュリティ情報を入力して、「次へ」をクリックする。

これでWindows8のインストールは完了。

続いて「VMware Tools」を導入する。「VMware Tools」を導入すること仮想マシンとメインマシンとの移動、ファイルの転送が可能となり、画面サイズの変更ができるようになる。

VMware Playerのメニューバーの「仮想マシン」をクリックし、「VMware Toolsのインストール」をクリックする。

Windows8のスタート画面の「エクスプロラー」をクリックする。

エクスプローラが起動するので、コンピュータを開いて、「DVDドライブ(D)」をダブルクリックする。

ユーザアカウント制御の警告が出たら「はい」をクリックする。

「次へ」をクリックする。

「標準」を選択し、「次へ」をクリックする。

「インストール」をクリックする。

インストールが「開始される。

「終了」をクリックする。

「はい」をクリックしてシステムの再起動する。

再起動が完了したら、windows8が起動する。

次回からは、この「VMware Player」のメニューから「Windows 8」を選択して、「仮想マシーンの再生」で起動する。

「VMware Player」は当然まだWindows 8には対応していないので、最初何度か失敗したが、この方法でうまくいった。


「VMware Player」はWindows上で仮想マシンや仮想OSを実行できるソフトウェア。
仮想マシンというのは、Windows上で仮想のマシンを作ることができ、その中で別のOSをインストールして実行可能だ。

このVMware Playerを用いることで、手軽にWindows上でWindows OS、Chrome OSや Linuxを実行できる。

今回は、windows7 上でWindows8プレビュー版を動かすために導入してみた。

VMware Playerをここからダウンロード 

「ダウンロード」ボタンをクリックする。

名前とメールアドレスを入力して、「続行」をクリックする。

Windows版をダウンロードする。

ダウンロードしたファイル「VMware-player-4.0.2-591240.exe」を実行する。

「次へ」をクリックする。

「次へ」をクリックする。

「次へ」をクリックする。

「次へ」をクリックする。

「続行」をクリックする。

インストールが始まる。

「今すぐ再起動」をクリックし、パソコンを再起動する。

デスクトップのショートカットアイコンから起動する。


KUMAOの押入TOP

  • Total : 85639
  • Today :81
  • Yesterday : 194
  • 7days:1404
  • now:2

カレンダー

2012年5月
« 4月    
 123456
78910111213
14151617181920
21222324252627
28293031  

カテゴリー

最近のコメント

アーカイブ

年間アーカイブ

Twitter

Get Adobe Flash player