Esempio n. 1
0
function MG_exportAlbums($aid, $path, $srcRoot, $destRoot)
{
    global $_TABLES, $fp, $mvorcopy, $unix;
    $sep = '/';
    $begin = "'";
    $end = "'";
    if ($unix == 0) {
        $sep = '\\';
        $begin = '"';
        $end = '"';
    }
    if ($mvorcopy == 0) {
        $cpyCmd = $unix == 1 ? 'mv' : 'move';
    } else {
        $cpyCmd = $unix == 1 ? 'cp' : 'copy';
    }
    $album = new mgAlbum($aid);
    $children = $album->getChildren();
    $nrows = count($children);
    if ($aid != 0) {
        $file_name = stripslashes($album->title);
        $file_name = MG_replace_accents($file_name);
        if ($unix == 1) {
            $file_name = preg_replace("#[ ]#", "_", $file_name);
            // change spaces to underscore
            $file_name = preg_replace('#[^()\\.\\-,\\w]#', '_', $file_name);
            //only parenthesis, underscore, letters, numbers, comma, hyphen, period - others to underscore
        } else {
            $file_name = preg_replace('#[^()\\.\\- \',\\w]#', '_', $file_name);
            //only parenthesis, underscore, letters, numbers, comma, hyphen, period - others to underscore
        }
        $file_name = preg_replace('#(_)+#', '_', $file_name);
        //eliminate duplicate underscore
        $path = $path . $file_name . $sep;
    }
    if ($aid != 0) {
        fputs($fp, 'mkdir ' . $begin . $destRoot . $path . $end . "\n");
    }
    $sql = "SELECT * FROM {$_TABLES['mg_media_albums']} AS ma INNER JOIN {$_TABLES['mg_media']} AS m " . " ON ma.media_id=m.media_id WHERE ma.album_id=" . intval($aid);
    $result = DB_query($sql);
    while ($M = DB_fetchArray($result)) {
        if ($M['media_original_filename'] != '') {
            $destFile = $M['media_original_filename'];
        } else {
            $destFile = $M['media_filename'] . '.' . $M['media_mime_ext'];
        }
        fputs($fp, $cpyCmd . " " . $begin . $srcRoot . $M['media_filename'][0] . $sep . $M['media_filename'] . '.' . $M['media_mime_ext'] . $end . " " . $begin . $destRoot . $path . $destFile . $end . "\n");
    }
    fputs($fp, "\n\n");
    for ($i = 0; $i < $nrows; $i++) {
        MG_exportAlbums($children[$i], $path, $srcRoot, $destRoot);
    }
}
Esempio n. 2
0
function _showSelectTree($aid = 0, $level = 0)
{
    $album = new mgAlbum($aid);
    $retval = '';
    $children = $album->getChildren();
    if ($album->id != 0 && $album->access > 0) {
        $block = '';
        if (!empty($children)) {
            $retval .= "<script type=\"text/javascript\"><!--" . LB . "function enableBlock" . $album->id . "() {" . LB . "  if (document.galselect.elements['album[" . $album->id . "]'].checked) {" . LB;
            foreach ($children as $child) {
                $retval .= "    document.galselect.elements['album[" . $child . "]'].disabled = true;" . LB;
                $retval .= "    document.galselect.elements['album[" . $child . "]'].checked = true;" . LB;
            }
            $retval .= "  } else {" . LB;
            foreach ($children as $child) {
                $retval .= "    document.galselect.elements['album[" . $child . "]'].disabled = false;" . LB;
                $retval .= "    document.galselect.elements['album[" . $child . "]'].checked = false;" . LB;
            }
            $retval .= "  }" . LB;
            foreach ($children as $child) {
                $child_of_child = $album->getChildren($child);
                if (!empty($child_of_child)) {
                    $retval .= '  enableBlock' . $child . '();' . LB;
                }
            }
            $retval .= "}" . LB . "// -->" . LB . "</script>" . LB;
            $block = 'onclick="enableBlock' . $album->id . '()" onchange="enableBlock' . $album->id . '()"';
        }
        if ($album->parent != 0) {
            $block = '';
        }
        $px = ($level - 1) * 15;
        $retval .= '<div style="margin-left:' . $px . 'px;">' . '<input type="checkbox" name="album[' . $album->id . ']" id="album_' . $album->id . '" value="1" ' . $block . XHTML . '>&nbsp;&nbsp;' . strip_tags($album->title) . ' (' . COM_numberFormat($album->album_disk_usage / 1024) . ' Kb)</div>' . LB;
    }
    $level++;
    foreach ($children as $child) {
        $retval .= _showSelectTree($child, $level);
    }
    return $retval;
}
Esempio n. 3
0
function MG_selectAlbums()
{
    global $glversion, $_CONF, $_MG_CONF, $_TABLES, $LANG_MG01, $LANG_MG07;
    // start by building an array of all site users (active)
    if ($glversion[1] < 4) {
        $result = DB_query("SELECT * FROM {$_TABLES['users']} AS users LEFT JOIN {$_TABLES['userinfo']} AS userinfo ON users.uid=userinfo.uid");
    } else {
        $result = DB_query("SELECT * FROM {$_TABLES['users']} AS users LEFT JOIN {$_TABLES['userinfo']} AS userinfo ON users.uid=userinfo.uid WHERE users.status=3");
    }
    while ($U = DB_fetchArray($result)) {
        $siteUsers[$U['uid']]['lastlogin'] = $U['lastlogin'];
        $siteUsers[$U['uid']]['username'] = $U['username'];
        $siteUsers[$U['uid']]['fullname'] = $U['fullname'];
    }
    $retval = '';
    $T = new Template($_MG_CONF['template_path']);
    $T->set_file('admin', 'purgealbums.thtml');
    $T->set_var('site_url', $_CONF['site_url']);
    $T->set_var('site_admin_url', $_CONF['site_admin_url']);
    $T->set_var('xhtml', XHTML);
    $T->set_block('admin', 'UserRow', 'uRow');
    $rowcounter = 0;
    $rowclass = 0;
    // now process all the albums directly off the album_root
    //  we will not call this recursively, we only care about those off the root
    $album = new mgAlbum($_MG_CONF['member_album_root']);
    $children = $album->getChildren();
    $numItems = count($children);
    for ($x = 0; $x < $numItems; $x++) {
        $child_album = new mgAlbum($children[$x]);
        if ($child_album->getMediaCount() == 0) {
            if ($siteUsers[$child_album->owner_id]['lastlogin'] == 0) {
                $lastlogin[0] = $LANG_MG07['never'];
            } else {
                $lastlogin = MG_getUserDateTimeFormat($siteUsers[$child_album->owner_id]['lastlogin']);
            }
            $T->set_var(array('select' => '<input type="checkbox" name="album[]" value="' . $child_album->id . '">', 'aid' => $child_album->id, 'title' => $child_album->title, 'owner' => $siteUsers[$child_album->owner_id]['username'] . '/' . $siteUsers[$child_album->owner_id]['fullname'], 'lastlogin' => $lastlogin[0], 'rowclass' => $rowclass % 2 ? '1' : '2'));
            $T->parse('uRow', 'UserRow', true);
            $rowcounter++;
        }
    }
    $T->set_var(array('lang_last_login' => $LANG_MG01['last_login'], 'lang_album_title' => $LANG_MG01['album_title'], 'lang_userid' => $LANG_MG01['userid'], 'lang_username' => $LANG_MG01['username'], 'lang_select' => $LANG_MG01['select'], 'lang_checkall' => $LANG_MG01['check_all'], 'lang_uncheckall' => $LANG_MG01['uncheck_all'], 'lang_delete' => $LANG_MG01['delete'], 'lang_cancel' => $LANG_MG01['cancel'], 'lang_reset' => $LANG_MG01['reset'], 's_form_action' => $_MG_CONF['admin_url'] . 'purgealbums.php'));
    $retval .= $T->finish($T->parse('output', 'admin'));
    return $retval;
}
Esempio n. 4
0
function MG_showTree($aid = 0, $depth = 0, $level = 0)
{
    global $_CONF, $_MG_CONF;
    require_once $_CONF['path'] . 'plugins/mediagallery/include/classAlbum.php';
    $album = new mgAlbum($aid);
    if ($album->hidden == 1 && $album->access != 3) {
        return '';
    }
    $retval = '';
    if ($album->access > 0) {
        $px = $level * 15;
        if ($depth == 0 || $level <= $depth) {
            $retval .= '<div style="margin-left:' . $px . 'px;">' . '<a href="' . $_MG_CONF['site_url'] . '/album.php?aid=' . $album->id . '&amp;page=1">' . strip_tags($album->title) . '</a></div>';
        }
    }
    $children = $album->getChildren();
    $level++;
    foreach ($children as $child) {
        $retval .= MG_showTree($child, $depth, $level);
    }
    return $retval;
}
Esempio n. 5
0
function MG_GlobalrebuildAllAlbumsRSS($aid)
{
    MG_buildAlbumRSS($aid);
    $album = new mgAlbum($aid);
    $children = $album->getChildren();
    foreach ($children as $child) {
        MG_GlobalrebuildAllAlbumsRSS($child);
    }
}
Esempio n. 6
0
function MG_staticSortChildAlbum($startaid, $sql_order, $sql_sort_by)
{
    global $_TABLES;
    $sql = "SELECT album_id,album_order FROM {$_TABLES['mg_albums']} " . "WHERE album_parent=" . intval($startaid) . $sql_sort_by . $sql_order;
    $order = 10;
    $result = DB_query($sql);
    $numRows = DB_numRows($result);
    $album_id = array();
    $album_order = array();
    for ($x = 0; $x < $numRows; $x++) {
        $row = DB_fetchArray($result);
        $album_id[$x] = $row['album_id'];
        $album_order[$x] = $order;
        $order += 10;
    }
    $album_count = $numRows;
    for ($x = 0; $x < $album_count; $x++) {
        DB_change($_TABLES['mg_albums'], 'album_order', $album_order[$x], 'album_id', $album_id[$x]);
    }
    $album = new mgAlbum($startaid);
    $children = $album->getChildren();
    foreach ($children as $child) {
        MG_staticSortChildAlbum($child, $sql_order, $sql_sort_by);
    }
}
Esempio n. 7
0
 function getOffset()
 {
     global $_TABLES;
     $offset = 0;
     $topParent = $this->getTopParent();
     if ($topParent == 0) {
         $pid = 0;
     } else {
         $temp = DB_getItem($_TABLES['mg_albums'], 'album_parent', "album_id = " . intval($topParent));
         if (isset($temp)) {
             $pid = $temp;
         } else {
             return -1;
         }
     }
     if ($this->parent == 0) {
         $matchID = $this->id;
     } else {
         $matchID = $topParent;
     }
     $parent_album = new mgAlbum($pid);
     $children = $parent_album->getChildren();
     //      $children = $this->getChildren($pid); // This doesn't work properly. Why?
     $idlist = implode(',', $children);
     if (empty($idlist)) {
         return $offset - 1;
     }
     $sql = "SELECT album_id,hidden,owner_id,group_id,perm_owner,perm_group,perm_members,perm_anon " . "FROM {$_TABLES['mg_albums']} " . "WHERE album_id IN ({$idlist}) ORDER BY album_order DESC";
     $result = DB_query($sql);
     while ($A = DB_fetchArray($result)) {
         $access = self::hasAccess($A['owner_id'], $A['group_id'], $A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon']);
         if ($access == 0 || $A['hidden'] && $access != 3) {
             //no op
         } else {
             $offset++;
         }
         if ($A['album_id'] == $matchID) {
             return $offset - 1;
         }
     }
     return $offset - 1;
 }