xsv2list

間に合わせで作った名もなきスニペット。この機能限定ですぐ欲しかったから作ったけれど、間違いなく再発明だと思う。

機能:

csvのようなデリミタ込みのデータ文字列、デリミタ、クラス名を与えて、HTMLのリストを生成する。

インストール:

スニペット新規作成で

<?php
/*
#   Name:    xsv2list
#   Version: 0.1
#   Author: psycot as TO-SHI-O
#   Date:    May 4, 2010
#   Using:   [[xsv2list? &xsv=`some<del>vars<del>string` &del=`<del>` &class=`class_for_listtag`]]
*/

$xsv = isset($xsv) ? $xsv : '';
$del = isset($del) ? $del: ',';
$listtag = isset($class) ? '<li class="'.$class.'">': '<li>';

if(!function_exists("makelist"))
{
 function makelist($v='', $s=',', $l='<li>')
 {
  if($v=='')// return blank if no string be submitted.
  {
    return;
  }

  $vs = explode($s, $v);
  foreach($vs as $x)
  {
    $out .= $l."$x".'</li>';
  }
  return $out;
 }
}
return makelist($xsv,$del,$listtag);
?>

使用例:

[[xsv2list? &xsv=`aaa bbb ccc` &del=` ` &class=`foo`]]

<li class="foo">aaa</li><li class="foo">bbb</li><li class="foo">ccc</li>

へと変換される。デフォルトの区切り文字はカンマ、クラス名は無しなので、

[[xsv2list? &xsv=`1,2,サム`]]

<li>1</li><li>2</li><li>サム</li>

へと変換される。

区切り文字はせいぜいカンマかスペースかタブくらいかと思ったので分割はexplodeに。

特にテストとかしていないので、一応使用は自己責任で。