This makes URL clickable and youtube URL embed in post

Am Ghaz Posted in Technical Support 10 years ago

I share my own code that makes URL clickable and youtube URL embed in post in ossn script

  1. Open this file:
    /components/OssnWall/templates/activity-item.php

  2. Scroll to:
    <div class="description">
    <div class="post-text"><?php echo stripslashes($params['text']); ?>

  3. Replace it with this:

    <div class="description">
    <div class="post-text">
    <?php // $out = $params['text'];
    $out = stripslashes($params['text']);

$clickable = pregreplace('*(f|ht)tps?://[A-Za-z0-9./?=+&%]+*', '<a target="_blank" href="$0">$0</a>', $out);
echo $clickable;

if (strpos($clickable,'youtube.com')) {

preg_match(
        '/[\?\&]v=([^\?\&]+)/',
        $clickable,
        $matches
    ); 
$id = $matches[1]; 
$width = '400';
$height = '270'; 
echo '<div><br><iframe frameborder="0" class="youtube" width="' .$width. '" height="'.$height.'" src="//www.youtube.com/embed/'.$id.'" frameborder="0" allowfullscreen></iframe></div>';

}
?>

That's all.

I answered to the topic also here

https://ekav.info/question-answer/index.php?qa=5&qa_1=how-to-make-url-clickable-and-youtube-url-embed-with-php-code

Replies
Am Ghaz Replied 10 years ago

OK, corrected, will not fall with this:

$clickable = pregreplace('*(f|ht)tps?://[A-Za-z0-9\./?=\+&%-]+*', '<a target="_blank" href="$0">$0</a>', $out);

German Michael Zülsdorff Replied 10 years ago

Well, I'm no regular expression wizzard, but with

preg_replace('*(f|ht)tps?://[A-Za-z0-9\./?=\+&%_]+*', '<a target="_blank" href="$0">$0</a>', $out);

it's obvious that urls like 'http://community.opensource-socialnetwork.org' will fall through.

Anyway, thanks for providing the idea.

Am Ghaz Replied 10 years ago

the script ofnthis site preventing from posting php codes,html divs etc here

so see here https://ekav.info/question-answer/index.php?qa=5&qa_1=how-to-make-url-clickable-and-youtube-url-embed-with-php-code

Am Ghaz Replied 10 years ago
Scroll to:   
   <div class="description">
            <div class="post-text"><?php echo stripslashes($params['text']); ?>

Replace it with this:

 <div class="description">
            <div class="post-text"> 
            <?php  // $out = $params['text'];  
  $out = stripslashes($params['text']);

$clickable = preg_replace('*(f|ht)tps?://[A-Za-z0-9\./?=\+&%_]+*', '<a target="_blank" href="$0">$0</a>', $out);
    echo $clickable;

if (strpos($clickable,'youtube.com')) {  


preg_match('/[\\?\\&]v=([^\\?\\&]+)/',
            $clickable,
            $matches
        );      $id = $matches[1];      $width = '400';   $height = '270';      echo '<div><br><iframe frameborder="0" class="youtube" width="' .$width. '" height="'.$height.'" src="//www.youtube.com/embed/'.$id.'" frameborder="0" allowfullscreen></iframe></div>';

} 
 ?>  
Premium Version

Due to the many requests in the past for additonal features and components we have decided to develope a premium version. Features like Hashtags, Videos, Polls, Events, Stories, Link Preview, etc included in it.

$199 (Life Time)
Learn More

Other Questions