woodrootsさんが投稿したコード一覧

PHP 過去ログツイートのテスト

require_once 'tmhOAuth.php';
function tweetPost(){

if($_GET['tweet'] == 1){ //追加:http://example.com?tweet=1 とアクセスした時に実行するように

    //トークンなどの設定
    $tmhOAuth  = new tmhOAuth(array(
        "consumer_key" => 'カスタマーキー',
        "consumer_secret" => 'カスタマーシークレット',
        "user_token" => 'アクセストークン',
        "user_secret" => 'アクセストークンシークレット',
        'curl_ssl_verifypeer' => false //SSL対応に必要
    ));

    //ツイートする記事の取得
    //いつものget_postsなので、ここでツイートしたい記事の条件をいろいろ指定できる。
    $post = get_posts(array(
        'numberposts' => 1,
        'orderby' => 'rand'
    ));

    //ツイートするテキスト(字数は定型文やハッシュタグを使う場合は適宜調整が必要)
    //以下の例は本文とURLをツイートするものですが、もちろんpost_titleも可です。
    $params = array(
        'status' => mb_strimwidth('【過去記事】'.strip_tags($post[0]->post_content), 0, 116, "...") . ' ' . get_permalink($post[0]->ID)
    );

    //ツイートする処理
    $code = $tmhOAuth->request(
        'POST',
        'https://api.twitter.com/1.1/statuses/update.json',
        $params,
        true,
        true
    );

    /*アイキャッチを添付画像にしてツイートしたい場合は以下のようになります
        $file = wp_get_attachment_image_src( get_post_thumbnail_id($post[0]->ID), 'full' );
        $file = $file[0];
        $image = file_get_contents( $file );
        $imagesize = getimagesize( $file );

        $params = array(
            'status' =>  mb_strimwidth('【過去記事】'.strip_tags($post[0]->post_content), 0, 116, "...") . ' ' . get_permalink($post[0]->ID),
            'media[]' => $image . ";type=" . $imagesize['mime'] . ";filename=" . basename( $file )
        );

        //URLが違うことに注意
        $code = $tmhOAuth->request(
            'POST',
            'https://api.twitter.com/1.1/statuses/update_with_media.json',
            $params,
            true,
            true
        );
    */
} //追加:if文の終わり
}

add_action('wp_head','tweetPost');  //追加:header読み込み時に上記アクションを実行(initだとGETが取れない)

PHP test

<?php
	var_dump($hogehoge);
?>

C test

あああああああああ

JavaScript GalleryViewのリンク設置カスタマイズ(target考慮)

//38行目あたりのthis.href = null を親要素のaのhrefを保持するように変更
//なお、このhrefはhref属性を付加するのではなく「href」という変数を保持するという意味みたいです
//          this.href = null;
          this.href = img.parent('a').attr('href') || null;

          //追加(target属性の値を保持する)
          this.href = img.parent('a').attr('target') || null;

//160行目あたりのli>imgをli imgに変更
//               this.sourceImgs = $('li>img',this.$el);
               this.sourceImgs = $('li img',this.$el);

//509行目あたりに追加
               _img.fadeIn();
               //以下の行を足します。1枚目の画像を読み込んだ時にリンクを設置します。data-link属性を保持させるのは後ほどの処理で
               //data-linkおよびdata-targetの有無によってwrapの内容を分岐する
               if(_img.attr('data-link') && _img.attr('data-target')){
                    _img.wrap('<a href="' + _img.attr('data-link') + '" target="' + img.attr('data-target') + '"></a>');
               } else if(_img.attr('data-link') && !_img.attr('data-target')){
                    _img.wrap('<a href="' + _img.attr('data-link') + '"></a>');
               }

//526行目あたりに追加
                              .attr('src',gvImage.src.panel)

                              //以下の行を追加。画像自体にdata-link属性でリンク先を保持します。data-targetとしてtarget属性の内容も保持
                              .attr('data-link',gvImage.href).attr('data-target',gvImage.target);

//600行目あたりに追加
//今回はpanel_animationがfadeのものに適用させてますが、それ以外のcrossfadeやslideに適用させる場合はその部分(caseの中)に書いてください。
//
                         if(panel.children().attr('data-link') && panel.children().attr('data-target')){
                              panel.children().wrap('<a href="' + panel.children().attr('data-link') + '" target="' + panel.children().attr('data-target') + '"></a>');
                         } else if(panel.children().attr('data-link') && !panel.children().attr('data-target')){
                              panel.children().wrap('<a href="' + panel.children().attr('data-link') + '"></a>');
                         }
                         break;

HTML hogehoge

hogehoge

PHP テスト

$request_token_url = "http://api.twitter.com/oauth/request_token";
$access_token_url = "http://api.twitter.com/oauth/access_token";
$authorize_url = "http://api.twitter.com/oauth/authenticate";

Prolog Prologのテスト

% File   : queens.pl
% Updated: 14 February 2008
% Purpose: N-Queen Puzzle (posed by Franz Nauch, 1850)

main :-
	write('N-Queen Puzzle (posed by Franz Nauch, 1850) '), nl,
	write('N = '),
	flush_output,
	read(N),
	N >= 4,
	read_yn('All solutions (y/n)? ', All),
	read_yn('Output (y/n)? ', Output),
	statistics(runtime, _),
	queen_solve(N, all(All), output(Output)),
	statistics(runtime, [_,T]),
	write('CPU time = '), write(T), write(' msec'), nl.

read_yn(Message, YN) :-
	write(Message),
	flush_output,
	read(X),
	(X == 'y' -> YN = yes; YN = no).

queen_solve(N, all(X), output(Y)) :-
	queens(N, Q),
	(Y == yes -> write(Q), nl; true),
	X == no,
	!.
queen_solve(_,_,_).

queens(N,Qs) :-
	range(1,N,Ns),
	queens(Ns,[],Qs).

queens([],Qs,Qs).
queens(UnplacedQs,SafeQs,Qs) :-
	select(UnplacedQs,UnplacedQs1,Q),
	not_attack(SafeQs,Q),
	queens(UnplacedQs1,[Q|SafeQs],Qs).

not_attack(Xs,X) :-
	not_attack(Xs,X,1).

not_attack([],_,_) :- !.
not_attack([Y|Ys],X,N) :-
	X =\= Y+N, X =\= Y-N,
	N1 is N+1,
	not_attack(Ys,X,N1).

select([X|Xs],Xs,X).
select([Y|Ys],[Y|Zs],X) :- select(Ys,Zs,X).

range(N,N,[N]) :- !.
range(M,N,[M|Ns]) :-
	M < N,
	M1 is M+1,
	range(M1,N,Ns).
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実行例 SWI-Prolog   (gprologでは失敗)

?- [queens].
% queens compiled 0.01 sec, 4,112 bytes
true.

?- main.
N-Queen Puzzle (posed by Franz Nauch, 1850)
N = 4.
All solutions (y/n)? y.
Output (y/n)? y.
[3, 1, 4, 2]
[2, 4, 1, 3]
CPU time = 0 msec
true.

?-

PHP 特定ユーザーのみに記事を閲覧させる&既読かどうかをチェックボックスで判定

<?php
	if(user_logged_in()){
	/*
	記事投稿時に「userid」というカスタムフィールドに見せたいユーザーのIDを入力しておきます。
	*/

	//ログイン中のユーザーのIDを取得
	global $user_ID;
	get_currentuserinfo();

	//カスタムフィールド「userid」がログイン中のユーザーのIDのものだけを取得
	//これでログイン中の場合、自分のIDとして設定された記事のみが表示されます。
	$arg = array(
		'meta_key' => 'userid',
		'meta_value' => $user_ID
	);
	query_posts($arg);
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

	<?php
		//記事を見たかどうかの処理は記事のカスタムフィールドに閲覧済みかどうかで値を持たせる
		//この例では記事のカスタムフィールド「read」が「1」ならば閲覧済みとする

		//POSTで「read」というキーが送られたときにカスタムフィールドに「read=1」を追加する
		if($_POST['read'] == '1' && wp_verify_nonce($_REQUEST['_wpnonce'],'nonce')){
			//ひょっとしたら$post->IDがとれないかもしれないので実際に設置して確認してみてください。
			add_post_meta($post->ID,'read',1);
		}

	?>
	<form action="./" method="post">
		<!-- 実装時はCSRFなどに注意してください -->
		<input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce('nonce'); ?>" />
		<input type="checkbox" name="read" value="1" />
		<input type="submit" value="この記事を確認しました" />
	</form>

	<!-- あとは通常のループと同様にthe_title()やthe_content()で記事の内容を出力 -->
	<?php the_title(); ?>
	<?php the_content(); ?>

<?php endwhile; else: ?>
<?php endif; ?>

<?php } else {
	//非ログインユーザー向けの表示
	echo 'ログインしてください。';
} ?>

JavaScript レイヤーグループにもとづく新規ユーザー定義スライス(ちょっとずれる)

//アクティブドキュメント取得
var doc = activeDocument;

//アクティブレイヤー
var act = doc.activeLayer;
if(act.typename != 'LayerSet'){
	alert('レイヤーグループを選択してください');
} else {

//幅とか高さとか
var x = act.bounds[0]; //左
var y = act.bounds[1]; //上
var x2 = act.bounds[2]; //右下x
var y2 = act.bounds[3]; //右下y

//スライス作成
// =======================================================
var idMk = charIDToTypeID( "Mk  " );
    var desc3 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
        var ref1 = new ActionReference();
        var idslice = stringIDToTypeID( "slice" );
        ref1.putClass( idslice );
    desc3.putReference( idnull, ref1 );
    var idUsng = charIDToTypeID( "Usng" );
        var desc4 = new ActionDescriptor();
        var idType = charIDToTypeID( "Type" );
        var idsliceType = stringIDToTypeID( "sliceType" );
        var iduser = stringIDToTypeID( "user" );
        desc4.putEnumerated( idType, idsliceType, iduser );
        var idAt = charIDToTypeID( "At  " );
            var desc5 = new ActionDescriptor();
            var idTop = charIDToTypeID( "Top " );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc5.putUnitDouble( idTop, idPxl, y );
            var idLeft = charIDToTypeID( "Left" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc5.putUnitDouble( idLeft, idPxl, x );
            var idBtom = charIDToTypeID( "Btom" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc5.putUnitDouble( idBtom, idPxl, y2 );
            var idRght = charIDToTypeID( "Rght" );
            var idPxl = charIDToTypeID( "#Pxl" );
            desc5.putUnitDouble( idRght, idPxl, x2 );
        var idRctn = charIDToTypeID( "Rctn" );
        desc4.putObject( idAt, idRctn, desc5 );
    var idslice = stringIDToTypeID( "slice" );
    desc3.putObject( idUsng, idslice, desc4 );
executeAction( idMk, desc3, DialogModes.NO );
}

JavaScript クッキーにフォームの値を保存してテンプレ的に使うやつ試作

//保存する要素取得
var input = $('form').find('input,textarea').not('input[type="submit"],input[type="button"]');

var savebtn = $('#save'); //保存ボタン
var loadbtn = $('#load'); //呼び出しボタン

//保存処理
$(savebtn).on('click',function(){
	$.each(input,function(key,value){
		//フォーム要素すべてに連番data属性付加
		$(this).attr('data-keys','saveform'+key);

		//保存する内容を振り分け
		var type = $(this).attr('type');
		if(type == 'text' || $(this)[0].tagName == 'textarea'){ //textかtextareaのとき(HTML5対応時はtypeを追加)
			var setval = $(this).val();
		} else if(type == 'radio' || type == 'checkbox'){
			var setval = $(this).attr('checked'); //チェックされていればcheckedが返る
		}

		$.cookie('saveform'+key,setval); //text,textareaはvalue、radioとcheckboxはcheckの値
	});
}

$(loadbtn).on('click',function(){
	$.each(input,function(key,value){
		//フォーム要素すべてに連番data属性付加
		$(this).attr('data-keys','saveform'+key);

		//保存された値を取得
		var loadval = $.cookie('saveform'+key);

		//フォームのtypeによって振り分け
		var type = $(this).attr('type');
		if(type == 'text' || $(this)[0].tagName == 'textarea'){ //textかtextareaのとき(HTML5対応時はtypeを追加)
			var setval = $(this).val(loadval);
		} else if(type == 'radio' || type == 'checkbox'){
			var setval = $(this).attr('checked',(loadval == 'checked') ? 'checked' : ''); //保存値がcheckedのときはchecked=checkedを代入
		}
	}
});
Total Pages: 1 / 612345...最後 »

よく投稿されているコード

タグ

最近投稿されたコード