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
TITLE:YouTubeプラグイン
%indent
#contents
 
* 方針 [#f3a67c4f]
- 今すぐYouTubeをサイトに組み込みたい。
- 大きさの調節だけは自由にやりたい。
- 他のオプションは後回し。
 
* 仕様 [#jdb6a476]
- ##&&;youtube(TOUYUBE-ID)&;;## と書けばとりあえず動画が再生可能になる。
- サイズ指定
 |*短縮型    |<        |*冗長型       |<             |*意味        |      
 |(無指定) |<        |<             |<             |## 560x315 ##|
 |##s##      |<        |##small##     |<             |## 560x315 ##|
 |##m##      |<        |##middle##    |<             |## 640x360 ##|
 |##l##      |<        |##large##     |<             |## 853x480 ##|
 |##h##      |<        |##hd##        |<             |##1280x720 ##|
 |##wXXX##   |##w=XXX##|## widthXXX## |## width=XXX##|## XXXx    ##|
 |##hYYY##   |##h=YYY##|##heightYYY## |##height=YYY##|##    xYYY ##|
 |##XXXxYYY##|<        |              |<             |             |+
 |##XXX*YYY##|         |              |              |             |+
 |##XXX-YYY##|         |              |              |## XXXxYYY ##|+
 |##XXX:YYY##|         |              |              |             |+
 |##XXX/YYY##|         |              |              |             | 
 
* 新造 [#t6f3c0be]
### php 
<?php
/////////////////////////////////////////////////
 
function plugin_youtube_inline()
{
    $argc = func_num_args();
    $argv = func_get_args();
    
    $width  = 560;
    $height = 315;
    $id     = "";
    
    foreach ($argv as $param)
    {
        $param = trim($param);
        
        if (preg_match('/^s(mall)?$/i',$param))    // Small 560x315
        {
            $width  = 560;
            $height = 315;
        }
        elseif (preg_match('/^m(iddle)?$/i',$param))    // Middle 640x360
        {
            $width  = 640;
            $height = 360;
        }
        elseif (preg_match('/^l(arge)?$/i',$param))    // Large 854x480
        {
            $width  = 853;
            $height = 480;
        }
        elseif (preg_match('/^hd?$/i',$param))    // HD 1280x720
        {
            $width  = 1280;
            $height = 720;
        }
        elseif (preg_match('/^(w(idth)?=?)(\d+)$/i',$param,$match))    // Width
        {
            $width = $match[3];
        }
        elseif (preg_match('/^(h(eight)?=?)(\d+)$/i',$param,$match))    // Height
        {
            $height = $match[3];
        }
        elseif (preg_match('/^(\d+)[x*-:\/](\d+)$/i',$param,$match))    // WxH
        {
            $width  = $match[1];
            $height = $match[2];
        }
        elseif (preg_match('/^((id=)|(#?))([\w\d-]+)$/i',$param,$match))    // ID
        {
            $id = $match[4];
        }
    }
    if ($id == '')
    {
        $main_tag = '<div>Invalid youtube id = '.$id.'</div>';
    }
    else
    {
        $id     = htmlspecialchars($id);
        $width  = htmlspecialchars($width);
        $height = htmlspecialchars($height);
        $main_tag = '<iframe width="'.$width.'" height="'.$height.'" src="//www.youtube.com/embed/'.$id.'" frameborder="0" allowfullscreen></iframe>';
    }
    return $pre_tag.$main_tag.$post_tag;
}
 
?>
###
 
* 課題 [#x4005bec]
- YouTubeの公式APIを調べること
- 仕様を再検討すること
    初基 一覧 検索 最新 バックアップ リンク元   ヘルプ   最終更新のRSS