Release Notes

First stable release.

  • Very nice work great now only thing that would make perfect is if it had same feature as Team Webgalli's videos plugin where it shows a small video in activity! And you can play from there with out having to transfer to the page..! 

    I have there plugin if you would like to check it out cause i believe they removed it now and you have to pay for it..!

  • By the way is it possible to have a all recent videos widget for the dashboard?

  • I have the Embed Extender 1.8.3 to show videos on blogs, pages, etc. It's really necesary or videolist also has this function?

    The plugin runs perfect from his unstable versions! :)

  • i was going to add this code via github but have needed to rebuild my pc instead.. so rather than have it sitting here not being used beyond my site i will share it here.
    it is a more efficient method of retrieving the videolist thumbnails (thumbnail.php) that does not load the engine for each thumbnail (which is a relatively huge waste of resources).
    i haven't integrated this into your latest version here yet.. there may be some other minor changes needed, perhaps to start.php.

     * Elgg file thumbnail
     * @package ElggFile

    // Get DB settings
    require_once(dirname(dirname(dirname(__FILE__))). '/engine/settings.php');

    global $CONFIG;

    $guid = (int)$_GET['guid'];
    $owner_guid = (int)$_GET['owner_guid'];
    $join_date = (int)$_GET['join_date'];
    // won't be able to serve anything if no joindate or guid
    if (!isset($guid) || !isset($join_date)) {
        header("HTTP/1.1 404 Not Found");

    $mysql_dblink = @mysql_connect($CONFIG->dbhost, $CONFIG->dbuser, $CONFIG->dbpass, true);
    if ($mysql_dblink) {
        if (@mysql_select_db($CONFIG->dbname, $mysql_dblink)) {
            $result = mysql_query("select name, value from {$CONFIG->dbprefix}datalists where name='dataroot'", $mysql_dblink);
            if ($result) {
                $row = mysql_fetch_object($result);
                while ($row) {
                    if ($row->name == 'dataroot') {
                        $data_root = $row->value;
                    $row = mysql_fetch_object($result);


            if (isset($data_root)) {

                // this depends on ElggDiskFilestore::makeFileMatrix()
                $user_path = date('Y/m/d/', $join_date) . $owner_guid;

                $filename = "$data_root$user_path/videolist/{$guid}.jpg";
                $size = @filesize($filename);
                if ($size) {
                    header("Content-type: image/jpeg");
                    header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+6 months")), true);
                    header("Pragma: public");
                    header("Cache-Control: public");
                    header("Content-Length: $size");
            //        header("ETag: \"$etag\"");


    // something went wrong so load engine and try to forward to default icon
    require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
    elgg_log("Videolist icon direct failed.", "WARNING");

  • We can wait if your PC must go to the doctor. :)

    Any comment about the plugin Embed Extender 1.8.3?

    Do You have plans to create a videolist widget to show the videos in homepage?

  • here's the other part for that update..

    the icon override in start.php.

    if you replace that function with this one and also replace thumbnail.php with the code i previously posted, the videolist plugin rendering will accelerate. :)

    function videolist_icon_url_override($hook, $type, $returnvalue, $params) {
        $videolist_item = $params['entity'];
        /* @var ElggObject $videolist_item */
        $size = $params['size'];

        if($videolist_item->getSubtype() != 'videolist_item'){
            return $returnvalue;
        // tiny thumbnails are too small to be useful, so give a generic video icon
        try {
            if ($size != 'tiny' && isset($videolist_item->thumbnail)) {
                $owner = $videolist_item->getOwnerEntity();
                $owner_guid = $owner->getGUID();
                $join_date = $owner->getTimeCreated();
                return "mod/videolist/thumbnail.php?guid=" . $videolist_item->guid . "&owner_guid=" . $owner_guid . "&join_date=" . $join_date;
        catch (InvalidParameterException $e) {
            elgg_log("Unable to get videolist icon for video with GUID {$videolist_item->guid}", 'ERROR');
            return "mod/videolist/graphics/videolist_icon_{$size}.png";
        if (in_array($size, array('tiny', 'small', 'medium'))){
            return "mod/videolist/graphics/videolist_icon_{$size}.png";

  • @tunist will you be making a update plugin wit ur code or plugin???

  • i will not be releasing a seperate version.. i could merge the code via github so the update may be included in a future release.

    you can integrate the pasted code here easily with any text editor.

  • Now if we can make a widget for the dashboard like they have for pics but thumbnails of recent videos!

  • i do not use dashboard on my site, so someone else will need to do that

  • here's another fix to remove the currently viewed video from the sidebar videolist block on the video watch pages:

    in videolist_block.php, replace the $options array definition with:

    $entity_guid = get_input('guid');

    $options = array(
        'container_guid' => $container_guid,
        'limit' => elgg_extract('limit', $vars, 6),
        'type' => 'object',
        'subtypes' => 'videolist_item',
        'full_view' => false,
        'pagination' => false,
        'wheres' => array('guid <> ' . $entity_guid), // exclude this item from list.

  • another fix. this is to correctly forward the page after a video has been deleted from the video's own page.. presently the page is forwarded back to the deleted video's old address which no longer exists.. (not sure why since the php logic looks ok).

    replace all code in the delete.php action file inclusive of and and below line 24: (if (!videolist_item->delete))) {

    replace with:

    if (!$videolist_item->delete()) {
    } else {
        if (elgg_instanceof($container, 'group')) {
        } else {


  • I have a problem in my community with this videolist and his notifications. I'm not an code expert but it's easy to see than every lenguage file (en, es, pt, etc) has diferent variables for notifications. In my case, the plugin sends only a notification title, without body text, and always like a "new video" if the notice is only a video commented. Anyone have a similar problem?

    Definitely I prefer VideoList against iZap Videos. The community iZap has long stop without answers.


Lorea Developer


  • Category: Media
  • License: GNU General Public License (GPL) version 2
  • Updated: 2014-11-17
  • Downloads: 7228
  • Recommendations: 39

Other Projects

View sem's plugins