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); } }
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 . '> ' . 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; }
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; }
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 . '&page=1">' . strip_tags($album->title) . '</a></div>'; } } $children = $album->getChildren(); $level++; foreach ($children as $child) { $retval .= MG_showTree($child, $depth, $level); } return $retval; }
function MG_GlobalrebuildAllAlbumsRSS($aid) { MG_buildAlbumRSS($aid); $album = new mgAlbum($aid); $children = $album->getChildren(); foreach ($children as $child) { MG_GlobalrebuildAllAlbumsRSS($child); } }
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); } }
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; }