| <?php
function bb_bbcode_collection_prepare_content($content)
{
    $parseData=parse_shortcode_data('strong',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<strong>'.$parseData[$i]['value'].'</strong>',$content);
    }
    
    $parseData=parse_shortcode_data('spoiler',$content);
    $total=count($parseData);
    $newID="";
    $addContent='';
    for ($i=0; $i < $total; $i++) { 
        $newID="ID_".randNumber(8);
        $addContent='
        <div class="collapse block" id="'.$newID.'" style="margin-top:10px;">
        <div class="card card-body">
        '.$parseData[$i]['value'].'
        </div>
        </div>
        ';
        if(count(array_keys($parseData[$i]['attr'])) > 0)
        {
            $content=str_replace($parseData[$i]['source'],'<button class="btn btn-success" type="button" data-bs-toggle="collapse" data-bs-target="#'.$newID.'" aria-expanded="false" aria-controls="'.$newID.'"><i class="fas fa-tag"></i> Spoiler: '.$parseData[$i]['attr']['value'].'</button>'.$addContent,$content);
        }
        else
        {
            $content=str_replace($parseData[$i]['source'],'<button class="btn btn-success" type="button" data-bs-toggle="collapse" data-bs-target="#'.$newID.'" aria-expanded="false" aria-controls="'.$newID.'"><i class="fas fa-tag"></i> Spoiler</button>'.$addContent,$content);
        }
        
    }
    $parseData=parse_shortcode_data('gallery',$content);
    $total=count($parseData);
    $splitImage='';
    $wrap_gallery='';
    $totalLine=0;
    for ($i=0; $i < $total; $i++) { 
        $splitImage=explode("\n",$parseData[$i]['value']);
        
        $totalLine=count($splitImage);
        $wrap_gallery='';
        if($totalLine > 0)
        {
            $wrap_gallery='<div class="fotorama" data-allowfullscreen="true" data-arrows="true" data-click="true" data-fit="cover" data-nav="thumbs" data-swipe="false">';
            for ($k=0; $k < $totalLine; $k++) { 
                if(isset($splitImage[$k][5]))
                {
                    $wrap_gallery.='<img src="'.$splitImage[$k].'" />';
                }
            }
    
            $wrap_gallery.='</div>';
    
            $content=str_replace($parseData[$i]['source'],$wrap_gallery,$content);
        }
    }
    $parseData=parse_shortcode_data('code',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<blockquote>'.htmlspecialchars($parseData[$i]['value']).'</blockquote>',$content);
    }
    $parseData=parse_shortcode_data('youtube',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<iframe width="560" height="315" src="https://www.youtube.com/embed/'.$parseData[$i]['value'].'" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>',$content);
    }
    $parseData=parse_shortcode_data('codepen',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<iframe height="300" style="width: 100%;" scrolling="no" title="Embed Example Pen" src="https://codepen.io/team/codepen/embed/preview/'.$parseData[$i]['value'].'?default-tab=html%2Cresult&editable=true" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
            See the Pen <a href="https://codepen.io/team/codepen/pen/'.$parseData[$i]['value'].'">
            Embed Example Pen</a> by CodePen (<a href="https://codepen.io/team/codepen">@codepen</a>)
            on <a href="https://codepen.io">CodePen</a>.
          </iframe>',$content);
    }
    $parseData=parse_shortcode_data('audio',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'
        <audio
            controls
            src="'.$parseData[$i]['value'].'">
                Your browser does not support the
                <code>audio</code> element.
        </audio>
        ',$content);
    }
    $parseData=parse_shortcode_data('video',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'
        <video width="320" height="240" controls>
            <source src="'.$parseData[$i]['value'].'" type="video/mp4">
            <source src="movie.ogg" type="video/ogg">
        Your browser does not support the video tag.
        </video>
        ',$content);
    }
    $parseData=parse_shortcode_data('pastebin',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<iframe src="https://pastebin.com/embed_iframe/'.$parseData[$i]['value'].'?theme=dark" style="border:none;width:100%;min-height:400px;"></iframe>',$content);
    }
    $parseData=parse_shortcode_data('jsfiddle',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<script async src="'.$parseData[$i]['value'].'/embed/js,html,css,result/dark/"></script>',$content);
    }
    $parseData=parse_shortcode_data('vimeo',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<iframe src="https://player.vimeo.com/video/'.$parseData[$i]['value'].'" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>',$content);
    }
    $parseData=parse_shortcode_data('dailymotion',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;"> <iframe style="width:100%;height:100%;position:absolute;left:0px;top:0px;overflow:hidden" frameborder="0" type="text/html" src="https://www.dailymotion.com/embed/video/'.$parseData[$i]['value'].'?autoplay=1" width="100%" height="100%" allowfullscreen allow="autoplay"> </iframe> </div>',$content);
    }
    $parseData=parse_shortcode_data('quote',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<blockquote>'.$parseData[$i]['value'].'</blockquote>',$content);
    }
    $parseData=parse_shortcode_data('s',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<s>'.$parseData[$i]['value'].'</s>',$content);
    }
    $parseData=parse_shortcode_data('url',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        if(count(array_keys($parseData[$i]['attr'])) > 0)
        {
            $content=str_replace($parseData[$i]['source'],'<a href="'.$parseData[$i]['attr']['value'].'" target="_blank">'.$parseData[$i]['value'].'</a>',$content);
        }
        else
        {
            $content=str_replace($parseData[$i]['source'],'<a href="'.$parseData[$i]['value'].'" target="_blank">'.$parseData[$i]['value'].'</a>',$content);
        }
        
    }
    
    $parseData=parse_shortcode_data('u',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<u>'.$parseData[$i]['value'].'</u>',$content);
    }
    $parseData=parse_shortcode_data('email',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<a href="mailto:'.$parseData[$i]['value'].'">'.$parseData[$i]['value'].'</a>',$content);
    }
    $parseData=parse_shortcode_data('img',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<img src="'.$parseData[$i]['value'].'">',$content);
    }
    $parseData=parse_shortcode_data('i',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<i>'.$parseData[$i]['value'].'</i>',$content);
    }
    $parseData=parse_shortcode_data('b',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<strong>'.$parseData[$i]['value'].'</strong>',$content);
    }
    $parseData=parse_shortcode_data('left',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<div style="width:100%;text-align:left;">'.$parseData[$i]['value'].'</div>',$content);
    }
    $parseData=parse_shortcode_data('right',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<div style="width:100%;text-align:right;">'.$parseData[$i]['value'].'</div>',$content);
    }
    $parseData=parse_shortcode_data('center',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<div style="width:100%;text-align:center;">'.$parseData[$i]['value'].'</div>',$content);
    }
    $parseData=parse_shortcode_data('plain',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<span>'.htmlspecialchars($parseData[$i]['value']).'</span>',$content);
    }
    $parseData=parse_shortcode_data('table',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<table class="table table-striped">'.$parseData[$i]['value'].'</table>',$content);
    }
    $parseData=parse_shortcode_data('thead',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<thead>'.$parseData[$i]['value'].'</thead>',$content);
    }
    $parseData=parse_shortcode_data('tbody',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<tbody>'.$parseData[$i]['value'].'</tbody>',$content);
    }
    $parseData=parse_shortcode_data('tfooter',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<tfooter>'.$parseData[$i]['value'].'</tfooter>',$content);
    }
    $parseData=parse_shortcode_data('tr',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<tr>'.$parseData[$i]['value'].'</tr>',$content);
    }
    $parseData=parse_shortcode_data('td',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<td>'.$parseData[$i]['value'].'</td>',$content);
    }
    $parseData=parse_shortcode_data('color',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<span style="color:'.$parseData[$i]['attr']['value'].'">'.$parseData[$i]['value'].'</span>',$content);
    }
    $parseData=parse_shortcode_data('size',$content);
    $total=count($parseData);
    for ($i=0; $i < $total; $i++) { 
        $content=str_replace($parseData[$i]['source'],'<span style="font-size:'.$parseData[$i]['attr']['value'].'pt;">'.$parseData[$i]['value'].'</span>',$content);
    }
    return $content;
}
 |