info

Home
[WordPress]pagination  @ CMS , WordPress 2017年11月1日
pagination
テーマのfunctions.phpに入れておくとよい。
function echo_pagination($params = array()){ 
	$params = array_merge(
		array(
			'per_page'       => 6,
			'link_count'     => 9,
			'left'           => '<li><a href="%url%">◀</a></li>',
			'right'          => '<li><a href="%url%">▶</a></li>',
			'format'         => '<li><a href="%url%">%no%</a></li>',
			'current_format' => '<li class="active"><a href="%url%">%no%</a></li>',
		),
		$params
	);
	global $paged;
	global $wp_query;
	if(empty($paged)){
		$paged = 1;
	}
	$pages = $wp_query->max_num_pages;
	if(!$pages){
		return;
	}

	if(1 < $paged){
		echo preg_replace('/%url%/',get_pagenum_link($paged-1),$params['left']);
	}

	$startPageNo = max(1, $paged-floor($params['link_count']*0.5));
	if($pages-$params['link_count'] < $startPageNo){
		$startPageNo = $pages-$params['link_count']+1;
	}
	for($i=$startPageNo;$i<$startPageNo+$params['link_count'] && $i <= $pages;$i++){
		$html = preg_replace('/%url%/',get_pagenum_link($i),$params[($i==$paged)?'current_format':'format']);
		echo preg_replace('/%no%/', $i, $html);
	}

	if($paged < $pages){
		echo preg_replace('/%url%/',get_pagenum_link($paged+1),$params['right']);
	}
}
[WordPress]404自動リダイレクトOFF  @ CMS , WordPress 2017年10月22日
404自動リダイレクトOFF
/**
 * 下記の機能OFF
 * WordPressには本来存在しないURLを指定したとしても、WordPress側で推測してユーザーがアクセスしたかったであろうURLにリダイレクトする機能
 * @param $redirect_url
 * @return bool
 */
function disable_redirect_canonical($redirect_url) {
    if( is_404() ) {
        return false;
    }
    return $redirect_url;
}
add_filter('redirect_canonical','disable_redirect_canonical');
又は
remove_filter('template_redirect', 'redirect_canonical');
[CodeIgniter]バリデーション設定テンプレ  @ PHP , CodeIgniter 2017年9月27日
バリデーション設定テンプレ
public $validation = array(
    'login' => array(
        array(
            'field'  => 'email',
            'label'  => 'メールアドレス',
            'rules'  => 'trim|xss_clean|required',
            'errors' => array(
                'required' => '%sは必須です。',
                'custom_validation' => '%sかパスワードが異なります。',
            ),
        ),
        array(
            'field'  => 'password',
            'label'  => 'パスワード',
            'rules'  => 'trim|xss_clean|required',
            'errors' => array(
                'required' => '%sは必須です。',
            ),
        ),
    ),
    'update' => array(
        array(
            'field'  => 'company',
            'label'  => '会社名',
            'rules'  => 'trim|xss_clean|max_length[50]',
            'errors' => array(
                'max_length' => '%sは50文字以下にして下さい。',
            ),
        ),
        array(
            'field'  => 'zip',
            'label'  => '郵便番号',
            'rules'  => 'trim|xss_clean|regex_match[/[\d]{3}\-[\d]{4}/]',
            'errors' => array(
                'regex_match' => '%sは[半角数字3桁-半角数字4桁]で入力して下さい。',
            ),
        ),
        array(
            'field'  => 'address',
            'label'  => '住所',
            'rules'  => 'trim|xss_clean|max_length[100]',
            'errors' => array(
                'max_length' => '%sは100文字以下にして下さい。',
            ),
        ),
        array(
            'field'  => 'tel',
            'label'  => '電話番号',
            'rules'  => 'trim|xss_clean|regex_match[/^[\d]{2,5}\-[\d]{1,4}\-[\d]{4}$/]',
            'errors' => array(
                'regex_match' => '%sは[半角数字2~5桁-半角数字1~4桁-半角数字4桁]で入力して下さい。',
            ),
        ),
        array(
            'field'  => 'email',
            'label'  => 'メールアドレス',
            'rules'  => 'trim|xss_clean|valid_email|max_length[255]',
            'errors' => array(
                'valid_email' => '%sを正しく入力して下さい。',
                'max_length' => '%sは255文字以下にして下さい。',
            ),
        ),
        array(
            'field'  => 'password',
            'label'  => 'パスワード',
            'rules'  => 'trim|xss_clean|min_length[6]|max_length[12]|regex_match[/^[\w\-]+$/]',
            'errors' => array(
                'required' => '%sは必須です。',
                'min_length' => '%sは6文字以上にして下さい。',
                'max_length' => '%sは12文字以下にして下さい。',
                'regex_match' => '%sに使用出来るのは半角英数字、ハイフン、アンダースコアです。',
            ),
        ),
        array(
            'field'  => 'note',
            'label'  => '備考',
            'rules'  => 'trim|xss_clean|max_length[500]',
            'errors' => array(
                'max_length' => '%sは500文字以下にして下さい。',
            ),
        ),
    ),
);
[JavaScript]textareaでtab  @ JavaScript , jQuery 2017年9月1日
textareaでtab
var addTabKeyEvent = function($textarea){
	$textarea.on('keydown',function(e){
		if(e.keyCode == 9){
			e.preventDefault();
		}else{
			return;
		}
		var $this = $(this);
		var start = this.selectionStart;
		var v = $this.val();
		$this.val(v.substring(0,start) + "\t" + v.substring(this.selectionEnd));
		this.selectionStart = this.selectionEnd = start + 1;
	});
};
addTabKeyEvent($('textarea'));
[MovableType] on windows xampp  @ CMS , MovableType6.x 2017年9月1日
MovableType on windows xampp
■
メール送信チェックをする場合は
C:\xampp\sendmail\sendmail.iniの下記の部分を設定しておく
auth_username=xxxxx.xxxx
auth_password=xxxxxxx

■フォルダ構成
/mt-static
/cgi-bin/mt

■アクセス
http://yourdomain/cgi-bin/mt/

■
MovableTypeへサインイン

■
スタティックウェブパス
/mt-static

スタティックファイルパス
C:\xampp\htdocs\mt_test\mt-static

■
システムチェック
次へ

■
ActivePerlインストール
インストール先C:\xampp\perl
C:\xampp\perlに元々あったファイルは削除

■
コマンドプロンプト ppm Enter
設定
Areas
Prefix:C:\xampp\perをチェック > ok
dbd-mysql インストール

■
sendmailパス
C:\xampp\sendmail\sendmail.exe

■
テンポラリーディレクトリ
C:\xampp\tmp
[WordPress]ルーティング  @ CMS , WordPress 2017年8月26日
テーマのfunctions.phpに追記する
/**
 * ルーティング(リライトルールの追加)
 * ここの設定を反映させるには下記の操作が必要
 * 管理画面にて「設定」->「パーマリンク設定」->変更せずに「変更を保存」
 * add_rewrite_ruleの第三引数の説明は下記
 * 'top' または 'bottom'。'top' の場合、ルールは WordPressのすべての既存ルールに優先する。'bottom' の場合、ルールはすべての既存ルールがマッチしない場合に検査される。
 */
function add_user_rewrite_rules() {
    add_rewrite_rule('^hoge/?$', 'index.php?c_controller=hoge&c_method=', 'top');
    add_rewrite_rule('^hoge/([^/]*)/?$', 'index.php?c_controller=hoge&c_method=$matches[1]', 'top');
}
add_action('init', 'add_user_rewrite_rules');

/**
 * ルーティング(リライトルールの追加)関連追加処理
 * c_type,c_actionをパブリッククエリ変数として登録
 * get_query_var('c_controller')で取得
 */
function add_user_routes_query_vars($query_vars){
    $query_vars[] = 'c_controller';
    $query_vars[] = 'c_method';
    return $query_vars;
}
add_filter('query_vars','add_user_routes_query_vars');
[PHP]Imagickサンプル  @ PHP 2017年8月10日
Imagickサンプル
<?php
$_data = array(
        'dir'       => './output/',
        'filename'  => date('YmdHis'),
        'filetype'  => 'png',
        'fontsize'  => 24,
        'width'     => 1000,
        'height'    => 640,
        'text'      => 'sample text',
        'textcolor' => '000000',
        'color'     => 'eeeeee',
        );
$filepath = realpath($_data['dir']).DIRECTORY_SEPARATOR.$_data['filename'];

$draw = new ImagickDraw();
$draw->setFont( realpath('./font/GenEiGothicP-Regular.otf') );
$draw->setFontSize($_data['fontsize']);
$draw->setFillColor(new ImagickPixel('#'.$_data['textcolor']));
$draw->setTextAlignment(Imagick::ALIGN_CENTER);
$draw->annotation($_data['width']*0.5,$_data['height']*0.5, $_data['text'] );

$canvas = new Imagick();
$canvas->newImage($_data['width'], $_data['height'], new ImagickPixel('#'.$_data['color']), $_data['filetype']);
$canvas->drawImage($draw);
$canvas->writeImage($filepath);
$canvas->clear();