Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/embedpre.../EmbedPre.../Provider...
File: Youtube.php
<div class="item" data-vid="<?php echo $vid; ?>">
[500] Fix | Delete
<div class="thumb" style="background: <?php echo "url({$thumbnail}) no-repeat center"; ?>">
[501] Fix | Delete
<div class="play-icon">
[502] Fix | Delete
<img src="<?php echo esc_url(EMBEDPRESS_URL_ASSETS . 'images/youtube/youtube-play.png'); ?>" alt="">
[503] Fix | Delete
</div>
[504] Fix | Delete
</div>
[505] Fix | Delete
<div class="body">
[506] Fix | Delete
<p><?php echo $item->snippet->title; ?></p>
[507] Fix | Delete
</div>
[508] Fix | Delete
</div>
[509] Fix | Delete
[510] Fix | Delete
<?php endforeach; ?>
[511] Fix | Delete
<div class="item" style="height: 0"></div>
[512] Fix | Delete
</div>
[513] Fix | Delete
[514] Fix | Delete
[515] Fix | Delete
<?php if ($totalPages > 1) : ?>
[516] Fix | Delete
<div class="ep-youtube__content__pagination <?php echo (empty($prevPageToken) && empty($nextPageToken)) ? ' hide ' : ''; ?>">
[517] Fix | Delete
<div
[518] Fix | Delete
class="ep-prev" <?php echo empty($prevPageToken) ? ' style="display:none" ' : ''; ?>
[519] Fix | Delete
data-playlistid="<?php echo esc_attr($options['playlistId']) ?>"
[520] Fix | Delete
data-pagetoken="<?php echo esc_attr($prevPageToken) ?>"
[521] Fix | Delete
data-pagesize="<?php echo intval($options['pagesize']) ?>"
[522] Fix | Delete
>
[523] Fix | Delete
<span><?php _e("Prev", "embedpress"); ?></span>
[524] Fix | Delete
</div>
[525] Fix | Delete
<div class="is_desktop_device ep-page-numbers <?php echo $totalPages > 1 ? '' : 'hide'; ?>">
[526] Fix | Delete
<?php
[527] Fix | Delete
[528] Fix | Delete
$numOfPages = $totalPages;
[529] Fix | Delete
$renderedEllipses = false;
[530] Fix | Delete
[531] Fix | Delete
$currentPage = !empty($options['currentpage'])?$options['currentpage'] : 1;
[532] Fix | Delete
[533] Fix | Delete
for($i = 1; $i<=$numOfPages; $i++)
[534] Fix | Delete
{
[535] Fix | Delete
//render pages 1 - 3
[536] Fix | Delete
if($i < 4) {
[537] Fix | Delete
//render link
[538] Fix | Delete
$is_current = $i == (int)$currentPage? "active__current_page" : "";
[539] Fix | Delete
[540] Fix | Delete
echo wp_kses_post("<span class='page-number $is_current' data-page='$i'>$i</span>");
[541] Fix | Delete
[542] Fix | Delete
}
[543] Fix | Delete
[544] Fix | Delete
//render current page number
[545] Fix | Delete
else if($i == (int)$currentPage) {
[546] Fix | Delete
//render link
[547] Fix | Delete
echo wp_kses_post('<span class="page-number active__current_page" data-page="'.$i.'">'.$i.'</span>');
[548] Fix | Delete
//reset ellipses
[549] Fix | Delete
$renderedEllipses = false;
[550] Fix | Delete
}
[551] Fix | Delete
[552] Fix | Delete
//last page number
[553] Fix | Delete
else if ($i >= $numOfPages - 1) {
[554] Fix | Delete
//render link
[555] Fix | Delete
echo wp_kses_post('<span class="page-number" data-page="'.$i.'">'.$i.'</span>');
[556] Fix | Delete
}
[557] Fix | Delete
[558] Fix | Delete
//make sure you only do this once per ellipses group
[559] Fix | Delete
else {
[560] Fix | Delete
if (!$renderedEllipses){
[561] Fix | Delete
print("...");
[562] Fix | Delete
$renderedEllipses = true;
[563] Fix | Delete
}
[564] Fix | Delete
}
[565] Fix | Delete
}
[566] Fix | Delete
?>
[567] Fix | Delete
[568] Fix | Delete
</div>
[569] Fix | Delete
[570] Fix | Delete
<div class="is_mobile_device ep-page-numbers <?php echo $totalPages > 1 ? '' : 'hide'; ?>">
[571] Fix | Delete
<?php
[572] Fix | Delete
[573] Fix | Delete
$numOfPages = $totalPages;
[574] Fix | Delete
$renderedEllipses = false;
[575] Fix | Delete
[576] Fix | Delete
$currentPage = !empty($options['currentpage'])?$options['currentpage'] : 1;
[577] Fix | Delete
[578] Fix | Delete
for($i = 1; $i<=$numOfPages; $i++)
[579] Fix | Delete
{
[580] Fix | Delete
[581] Fix | Delete
//render current page number
[582] Fix | Delete
if($i == (int)$currentPage) {
[583] Fix | Delete
//render link
[584] Fix | Delete
echo wp_kses_post('<span class="page-number-mobile" data-page="'.$i.'">'.$i.'</span>');
[585] Fix | Delete
//reset ellipses
[586] Fix | Delete
$renderedEllipses = false;
[587] Fix | Delete
}
[588] Fix | Delete
[589] Fix | Delete
//last page number
[590] Fix | Delete
else if ($i >= $numOfPages ) {
[591] Fix | Delete
//render link
[592] Fix | Delete
echo wp_kses_post('...<span class="page-number-mobile" data-page="'.$i.'">'.$i.'</span>');
[593] Fix | Delete
}
[594] Fix | Delete
}
[595] Fix | Delete
?>
[596] Fix | Delete
[597] Fix | Delete
</div>
[598] Fix | Delete
[599] Fix | Delete
[600] Fix | Delete
<div
[601] Fix | Delete
class="ep-next " <?php echo empty($nextPageToken) ? ' style="display:none" ' : ''; ?>
[602] Fix | Delete
data-playlistid="<?php echo esc_attr($options['playlistId']) ?>"
[603] Fix | Delete
data-pagetoken="<?php echo esc_attr($nextPageToken) ?>"
[604] Fix | Delete
data-pagesize="<?php echo intval($options['pagesize']) ?>"
[605] Fix | Delete
>
[606] Fix | Delete
<span><?php _e("Next ", "embedpress"); ?> </span>
[607] Fix | Delete
</div>
[608] Fix | Delete
</div>
[609] Fix | Delete
<?php endif; ?>
[610] Fix | Delete
[611] Fix | Delete
<div class="ep-loader-wrap">
[612] Fix | Delete
<div class="ep-loader"><img alt="loading" src="<?php echo esc_url(EMBEDPRESS_URL_ASSETS . 'images/youtube/spin.gif'); ?>"></div>
[613] Fix | Delete
</div>
[614] Fix | Delete
[615] Fix | Delete
</div>
[616] Fix | Delete
</div>
[617] Fix | Delete
<?php
[618] Fix | Delete
$gallobj->html = ob_get_clean();
[619] Fix | Delete
else:
[620] Fix | Delete
$gallobj->html = self::clean_api_error_html(__("There is nothing on the playlist.", 'embedpress'));
[621] Fix | Delete
endif;
[622] Fix | Delete
[623] Fix | Delete
return $gallobj;
[624] Fix | Delete
}
[625] Fix | Delete
[626] Fix | Delete
public static function get_api_key_error_message(){
[627] Fix | Delete
return '<div>' . sprintf(__("EmbedPress: Please enter your YouTube API key at <a class='ep-link' href='%s' target='_blank' style='color: #5b4e96; text-decoration: none'>EmbedPress > Platforms > YouTube</a> to embed YouTube Channel.", "embedpress"), admin_url('?page=embedpress&page_type=youtube#api_key')) . '</div>';
[628] Fix | Delete
}
[629] Fix | Delete
[630] Fix | Delete
public static function get_id($item){
[631] Fix | Delete
$vid = isset($item->snippet->resourceId->videoId) ? $item->snippet->resourceId->videoId : null;
[632] Fix | Delete
$vid = $vid ? $vid : (isset($item->id->videoId) ? $item->id->videoId : null);
[633] Fix | Delete
$vid = $vid ? $vid : (isset($item->id) ? $item->id : null);
[634] Fix | Delete
return $vid;
[635] Fix | Delete
}
[636] Fix | Delete
public static function get_thumbnail_url($item, $quality, $privacyStatus) {
[637] Fix | Delete
$url = "";
[638] Fix | Delete
if ($privacyStatus == 'private') {
[639] Fix | Delete
$url = EMBEDPRESS_URL_ASSETS . 'images/youtube/private.png';
[640] Fix | Delete
} elseif (isset($item->snippet->thumbnails->{$quality}->url)) {
[641] Fix | Delete
$url = $item->snippet->thumbnails->{$quality}->url;
[642] Fix | Delete
} elseif (isset($item->snippet->thumbnails->medium->url)) {
[643] Fix | Delete
$url = $item->snippet->thumbnails->medium->url;
[644] Fix | Delete
} elseif (isset($item->snippet->thumbnails->default->url)) {
[645] Fix | Delete
$url = $item->snippet->thumbnails->default->url;
[646] Fix | Delete
} elseif (isset($item->snippet->thumbnails->high->url)) {
[647] Fix | Delete
$url = $item->snippet->thumbnails->high->url;
[648] Fix | Delete
} else {
[649] Fix | Delete
$url = EMBEDPRESS_URL_ASSETS . 'images/youtube/deleted-video-thumb.png';
[650] Fix | Delete
}
[651] Fix | Delete
return $url;
[652] Fix | Delete
}
[653] Fix | Delete
[654] Fix | Delete
public static function compare_vid_date($a, $b) {
[655] Fix | Delete
if ($a->snippet->publishedAt == $b->snippet->publishedAt) {
[656] Fix | Delete
return 0;
[657] Fix | Delete
}
[658] Fix | Delete
return ($a->snippet->publishedAt > $b->snippet->publishedAt) ? -1 : 1;
[659] Fix | Delete
}
[660] Fix | Delete
[661] Fix | Delete
public static function clean_api_error($raw_message) {
[662] Fix | Delete
return htmlspecialchars(strip_tags(preg_replace('@&key=[^& ]+@i', '&key=*******', $raw_message)));
[663] Fix | Delete
}
[664] Fix | Delete
[665] Fix | Delete
public static function clean_api_error_html($raw_message) {
[666] Fix | Delete
$clean_html = '';
[667] Fix | Delete
if ((defined('REST_REQUEST') && REST_REQUEST) || current_user_can('manage_options')) {
[668] Fix | Delete
$clean_html = '<div>' . __('EmbedPress: ', 'embedpress') . self::clean_api_error($raw_message) . '</div>';
[669] Fix | Delete
}
[670] Fix | Delete
return $clean_html;
[671] Fix | Delete
}
[672] Fix | Delete
[673] Fix | Delete
/** inline {@inheritdoc} */
[674] Fix | Delete
public function getFakeResponse() {
[675] Fix | Delete
preg_match('~v=([a-z0-9_\-]+)~i', (string) $this->url, $matches);
[676] Fix | Delete
[677] Fix | Delete
$embedUrl = 'https://www.youtube.com/embed/' . $matches['1'] . '?feature=oembed';
[678] Fix | Delete
[679] Fix | Delete
$attr = [];
[680] Fix | Delete
$attr[] = 'width="{width}"';
[681] Fix | Delete
$attr[] = 'height="{height}"';
[682] Fix | Delete
$attr[] = 'src="' . esc_url($embedUrl) . '"';
[683] Fix | Delete
$attr[] = 'frameborder="0"';
[684] Fix | Delete
$attr[] = 'allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"';
[685] Fix | Delete
$attr[] = 'allowfullscreen';
[686] Fix | Delete
[687] Fix | Delete
return [
[688] Fix | Delete
'type' => 'video',
[689] Fix | Delete
'provider_name' => 'Youtube',
[690] Fix | Delete
'provider_url' => 'https://www.youtube.com',
[691] Fix | Delete
'title' => 'Unknown title',
[692] Fix | Delete
'html' => '<iframe ' . implode(' ', $attr) . '></iframe>',
[693] Fix | Delete
];
[694] Fix | Delete
}
[695] Fix | Delete
[696] Fix | Delete
// public static $num = 0;
[697] Fix | Delete
[698] Fix | Delete
[699] Fix | Delete
[700] Fix | Delete
public static $x = 0;
[701] Fix | Delete
[702] Fix | Delete
public static function styles($params, $url){
[703] Fix | Delete
[704] Fix | Delete
$uniqid = '.ose-youtube.ose-uid-'.md5($url);
[705] Fix | Delete
[706] Fix | Delete
ob_start();
[707] Fix | Delete
?>
[708] Fix | Delete
<style>
[709] Fix | Delete
html {
[710] Fix | Delete
scroll-behavior: smooth;
[711] Fix | Delete
}
[712] Fix | Delete
.ep-player-wrap .hide {
[713] Fix | Delete
display: none;
[714] Fix | Delete
}
[715] Fix | Delete
[716] Fix | Delete
.ep-gdrp-content {
[717] Fix | Delete
background: #222;
[718] Fix | Delete
padding: 50px 30px;
[719] Fix | Delete
color: #fff;
[720] Fix | Delete
}
[721] Fix | Delete
[722] Fix | Delete
.ep-gdrp-content a {
[723] Fix | Delete
color: #fff;
[724] Fix | Delete
}
[725] Fix | Delete
[726] Fix | Delete
.ep-youtube__content__pagination {
[727] Fix | Delete
display: flex;
[728] Fix | Delete
justify-content: center;
[729] Fix | Delete
align-items: center;
[730] Fix | Delete
margin-top: 30px;
[731] Fix | Delete
gap: 10px;
[732] Fix | Delete
}
[733] Fix | Delete
.ep-loader-wrap {
[734] Fix | Delete
margin-top: 30px;
[735] Fix | Delete
display: flex;
[736] Fix | Delete
justify-content: center;
[737] Fix | Delete
}
[738] Fix | Delete
[739] Fix | Delete
.ep-youtube__content__pagination .ep-prev,
[740] Fix | Delete
.ep-youtube__content__pagination .ep-next {
[741] Fix | Delete
cursor: pointer;
[742] Fix | Delete
border: 1px solid rgba(0, 0, 0, .1);
[743] Fix | Delete
border-radius: 30px;
[744] Fix | Delete
padding: 0 20px;
[745] Fix | Delete
height: 40px;
[746] Fix | Delete
transition: .3s;
[747] Fix | Delete
display: flex;
[748] Fix | Delete
align-items: center;
[749] Fix | Delete
}
[750] Fix | Delete
.ep-youtube__content__pagination .ep-prev:hover,
[751] Fix | Delete
.ep-youtube__content__pagination .ep-next:hover{
[752] Fix | Delete
background-color: #5B4E96;
[753] Fix | Delete
color: #fff;
[754] Fix | Delete
}
[755] Fix | Delete
.ep-youtube__content__pagination .ep-page-numbers {
[756] Fix | Delete
display: flex;
[757] Fix | Delete
align-items: center;
[758] Fix | Delete
gap: 10px;
[759] Fix | Delete
flex-wrap: wrap;
[760] Fix | Delete
}
[761] Fix | Delete
.ep-youtube__content__pagination .ep-page-numbers > span {
[762] Fix | Delete
border: 1px solid rgba(0, 0, 0, .1);
[763] Fix | Delete
border-radius: 30px;
[764] Fix | Delete
display: inline-block;
[765] Fix | Delete
width: 45px;
[766] Fix | Delete
height: 45px;
[767] Fix | Delete
display: flex;
[768] Fix | Delete
align-items: center;
[769] Fix | Delete
justify-content: center;
[770] Fix | Delete
}
[771] Fix | Delete
.active__current_page{
[772] Fix | Delete
background: #5B4E96;
[773] Fix | Delete
color: #fff;
[774] Fix | Delete
}
[775] Fix | Delete
[776] Fix | Delete
.ep-youtube__content__block .youtube__content__body .content__wrap {
[777] Fix | Delete
margin-top: 30px;
[778] Fix | Delete
display: grid;
[779] Fix | Delete
grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
[780] Fix | Delete
gap: 30px;
[781] Fix | Delete
}
[782] Fix | Delete
[783] Fix | Delete
.ep-youtube__content__block .item {
[784] Fix | Delete
cursor: pointer;
[785] Fix | Delete
white-space: initial;
[786] Fix | Delete
}
[787] Fix | Delete
[788] Fix | Delete
.ep-youtube__content__block .item:hover .thumb .play-icon {
[789] Fix | Delete
opacity: 1;
[790] Fix | Delete
top: 50%;
[791] Fix | Delete
}
[792] Fix | Delete
[793] Fix | Delete
.ep-youtube__content__block .item:hover .thumb:after {
[794] Fix | Delete
opacity: .4;
[795] Fix | Delete
z-index: 0;
[796] Fix | Delete
}
[797] Fix | Delete
[798] Fix | Delete
.ep-youtube__content__block .thumb {
[799] Fix | Delete
padding-top: 56.25%;
[800] Fix | Delete
margin-bottom: 5px;
[801] Fix | Delete
position: relative;
[802] Fix | Delete
background: #222;
[803] Fix | Delete
background-size: contain !important;
[804] Fix | Delete
}
[805] Fix | Delete
[806] Fix | Delete
.ep-youtube__content__block .thumb:after {
[807] Fix | Delete
position: absolute;
[808] Fix | Delete
top: 0;
[809] Fix | Delete
left: 0;
[810] Fix | Delete
height: 100%;
[811] Fix | Delete
width: 100%;
[812] Fix | Delete
content: '';
[813] Fix | Delete
background: #000;
[814] Fix | Delete
opacity: 0;
[815] Fix | Delete
transition: opacity .3s ease;
[816] Fix | Delete
}
[817] Fix | Delete
[818] Fix | Delete
.ep-youtube__content__block .thumb:before {
[819] Fix | Delete
position: absolute;
[820] Fix | Delete
top: 0;
[821] Fix | Delete
left: 0;
[822] Fix | Delete
height: 100%;
[823] Fix | Delete
width: 100%;
[824] Fix | Delete
content: '';
[825] Fix | Delete
background: #222;
[826] Fix | Delete
z-index: -1;
[827] Fix | Delete
}
[828] Fix | Delete
[829] Fix | Delete
.ep-youtube__content__block .thumb img {
[830] Fix | Delete
width: 100%;
[831] Fix | Delete
height: 100%;
[832] Fix | Delete
object-fit: cover;
[833] Fix | Delete
}
[834] Fix | Delete
[835] Fix | Delete
.ep-youtube__content__block .thumb .play-icon {
[836] Fix | Delete
width: 50px;
[837] Fix | Delete
height: auto;
[838] Fix | Delete
position: absolute;
[839] Fix | Delete
top: 40%;
[840] Fix | Delete
left: 50%;
[841] Fix | Delete
transform: translate(-50%, -50%);
[842] Fix | Delete
opacity: 0;
[843] Fix | Delete
transition: all .3s ease;
[844] Fix | Delete
z-index: 2;
[845] Fix | Delete
}
[846] Fix | Delete
[847] Fix | Delete
.ep-youtube__content__block .thumb .play-icon img {
[848] Fix | Delete
width: 100;
[849] Fix | Delete
}
[850] Fix | Delete
[851] Fix | Delete
.ep-youtube__content__block .body p {
[852] Fix | Delete
margin-bottom: 0;
[853] Fix | Delete
font-size: 15px;
[854] Fix | Delete
text-align: left;
[855] Fix | Delete
line-height: 1.5;
[856] Fix | Delete
font-weight: 400;
[857] Fix | Delete
}
[858] Fix | Delete
.ep-youtube__content__block.loading .ep-youtube__content__pagination {
[859] Fix | Delete
display: none;
[860] Fix | Delete
}
[861] Fix | Delete
[862] Fix | Delete
.ep-youtube__content__block .ep-loader {
[863] Fix | Delete
display: none;
[864] Fix | Delete
}
[865] Fix | Delete
[866] Fix | Delete
.ep-youtube__content__block.loading .ep-loader {
[867] Fix | Delete
display: block;
[868] Fix | Delete
}
[869] Fix | Delete
.ep-loader img {
[870] Fix | Delete
width: 20px;
[871] Fix | Delete
}
[872] Fix | Delete
.is_mobile_device{
[873] Fix | Delete
display: none!important;
[874] Fix | Delete
}
[875] Fix | Delete
[876] Fix | Delete
[877] Fix | Delete
.is_mobile_devic.ep-page-numbers {
[878] Fix | Delete
gap: 5px;
[879] Fix | Delete
}
[880] Fix | Delete
[881] Fix | Delete
@media only screen and (max-width: 480px) {
[882] Fix | Delete
.is_desktop_device{
[883] Fix | Delete
display: none!important;
[884] Fix | Delete
}
[885] Fix | Delete
.ep-youtube__content__pagination .ep-page-numbers > span {
[886] Fix | Delete
width: 35px;
[887] Fix | Delete
height: 35px;
[888] Fix | Delete
}
[889] Fix | Delete
.ep-youtube__content__pagination .ep-prev, .ep-youtube__content__pagination .ep-next{
[890] Fix | Delete
height: 35px;
[891] Fix | Delete
}
[892] Fix | Delete
.is_mobile_device{
[893] Fix | Delete
display: flex!important;;
[894] Fix | Delete
}
[895] Fix | Delete
.ep-youtube__content__pagination .ep-page-numbers {
[896] Fix | Delete
gap: 5px;
[897] Fix | Delete
}
[898] Fix | Delete
}
[899] Fix | Delete
<?php
[900] Fix | Delete
$attributes_data = $params;
[901] Fix | Delete
[902] Fix | Delete
$is_pagination = 'flex';
[903] Fix | Delete
[904] Fix | Delete
$gap = '30';
[905] Fix | Delete
$columns = '';
[906] Fix | Delete
[907] Fix | Delete
if (isset($attributes_data['ispagination']) && $attributes_data['ispagination']) {
[908] Fix | Delete
$is_pagination = 'none';
[909] Fix | Delete
}
[910] Fix | Delete
if(isset($attributes_data['gapbetweenvideos'])){
[911] Fix | Delete
$gap = $attributes_data['gapbetweenvideos'];
[912] Fix | Delete
}
[913] Fix | Delete
if(isset($attributes_data['columns'])){
[914] Fix | Delete
$columns = $attributes_data['columns'];
[915] Fix | Delete
}
[916] Fix | Delete
[917] Fix | Delete
[918] Fix | Delete
if(!empty($columns) && (int) $columns > 0){
[919] Fix | Delete
$repeatCol = 'repeat(auto-fit, minmax('.esc_html('calc('.(100 / (int) $columns).'% - '.$gap.'px)').', 1fr))';
[920] Fix | Delete
}
[921] Fix | Delete
else{
[922] Fix | Delete
$repeatCol = 'repeat(auto-fit, minmax(calc(250px - '.$gap.'px), 1fr))';
[923] Fix | Delete
}
[924] Fix | Delete
[925] Fix | Delete
?>
[926] Fix | Delete
<?php echo esc_attr($uniqid); ?> .ep-youtube__content__block .youtube__content__body .content__wrap {
[927] Fix | Delete
gap: <?php echo esc_html($gap); ?>px !important;
[928] Fix | Delete
margin-top: <?php echo esc_html($gap); ?>px !important;
[929] Fix | Delete
grid-template-columns: <?php echo $repeatCol; ?>;
[930] Fix | Delete
}
[931] Fix | Delete
<?php echo esc_attr($uniqid); ?> .ep-youtube__content__block .ep-youtube__content__pagination {
[932] Fix | Delete
display: <?php echo esc_html($is_pagination); ?>!important;
[933] Fix | Delete
}
[934] Fix | Delete
[935] Fix | Delete
<?php
[936] Fix | Delete
if($is_pagination){
[937] Fix | Delete
echo esc_attr($uniqid) ?> {
[938] Fix | Delete
height: 100%!important;
[939] Fix | Delete
}
[940] Fix | Delete
<?php
[941] Fix | Delete
}
[942] Fix | Delete
?>
[943] Fix | Delete
</style>
[944] Fix | Delete
<?php
[945] Fix | Delete
return ob_get_clean();
[946] Fix | Delete
}
[947] Fix | Delete
}
[948] Fix | Delete
[949] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function