/** * Handles an album for printAlbumMenuList * * @param array $albums albums array * @param string $path for createAlbumMenuLink * @param string $folder * @param string $option see printAlbumMenuList * @param string $showcount see printAlbumMenuList * @param int $showsubs see printAlbumMenuList * @param string $css_class see printAlbumMenuList * @param string $css_class_topactive see printAlbumMenuList * @param string $css_class_active see printAlbumMenuList * @param bool $firstimagelink If set to TRUE and if the album has images the link will point to page of the first image instead the album thumbnail page * @param bool $keeptopactive If set to TRUE the toplevel album entry will stay marked as active if within its subalbums ("list" only) * @param int $limit truncation of display text */ function printAlbumMenuListAlbum($albums, $path, $folder, $option, $showcount, $showsubs, $css_class, $css_class_topactive, $css_class_active, $firstimagelink, $keeptopactive, $limit = NULL) { global $_zp_gallery, $_zp_current_album; if (is_null($limit)) { $limit = MENU_TRUNCATE_STRING; } if (is_null($showcount)) { $showcount = ALBUM_MENU_COUNT; } if (is_null($showsubs)) { $showsubs = ALBUM_MENU_SHOWSUBS; } if ($showsubs && !is_numeric($showsubs)) { $showsubs = 9999999999.0; } if (empty($keeptopactive)) { $keeptopactive = false; } $pagelevel = count(explode('/', $folder)); $currenturalbumname = ""; foreach ($albums as $album) { $level = count(explode('/', $album)); $process = $level < $showsubs && $option == "list" || $option != 'list-top' && strpos($folder, $album) === 0 && $level <= $pagelevel; $topalbum = new Album($_zp_gallery, $album, true); if ($level > 1 || $option != 'omit-top') { // listing current level album if ($level == 1) { $css_class_t = $css_class_topactive; } else { $css_class_t = $css_class_active; } if ($keeptopactive) { if (isset($_zp_current_album) && is_object($_zp_current_album)) { $currenturalbum = getUrAlbum($_zp_current_album); $currenturalbumname = $currenturalbum->name; } } $count = ""; if ($showcount) { $toplevelsubalbums = $topalbum->getAlbums(); $toplevelsubalbums = count($toplevelsubalbums); $topalbumnumimages = $topalbum->getNumImages(); $count = ' <span style="white-space:nowrap;"><small>('; if ($toplevelsubalbums > 0) { $count .= sprintf(ngettext('%u album', '%u albums', $toplevelsubalbums), $toplevelsubalbums); } if ($topalbumnumimages > 0) { if ($toplevelsubalbums) { $count .= ' '; } $count .= sprintf(ngettext('%u image', '%u images', $topalbumnumimages), $topalbumnumimages); } $count .= ')</small></span>'; } if (in_context(ZP_ALBUM) && !in_context(ZP_SEARCH_LINKED) && (getAlbumID() == $topalbum->getAlbumID() || $topalbum->name == $currenturalbumname)) { $current = $css_class_t . ' '; } else { $current = ""; } $title = $topalbum->getTitle(); if ($limit) { $display = shortenContent($title, $limit, MENU_TRUNCATE_INDICATOR); } else { $display = $title; } if ($firstimagelink && $topalbum->getNumImages() != 0) { $imgurl = getFirstImageOfAlbum($topalbum); $link = "<li><a " . $current . "href='" . $imgurl . "' title='" . html_encode($title) . "'>" . html_encode($display) . "</a>" . $count; } else { $link = "<li><a " . $current . "href='" . html_encode($path . pathurlencode($topalbum->name)) . "' title='" . html_encode($title) . "'>" . html_encode($display) . "</a>" . $count; } echo $link; } if ($process) { // listing subalbums $subalbums = $topalbum->getAlbums(); if (!empty($subalbums)) { echo "\n<ul" . $css_class . ">\n"; printAlbumMenuListAlbum($subalbums, $path, $folder, $option, $showcount, $showsubs, $css_class, $css_class_topactive, $css_class_active, $firstimagelink, false, $limit); echo "\n</ul>\n"; } } if ($option == 'list' || $option == 'list-top' || $level > 1) { // close the LI echo "\n</li>\n"; } } }
$imagefile = "albums/" . $albumobj->name . "/" . $item->filename; $thumburl = '<img border="0" src="' . $protocol . '://' . $host . $item->getCustomImage($size, NULL, NULL, NULL, NULL, NULL, NULL, TRUE) . '" alt="' . get_language_string(get_language_string($item->get("title"), $locale)) . '" />'; $itemcontent = '<![CDATA[<a title="' . html_encode(get_language_string($item->get("title"), $locale)) . ' in ' . html_encode(get_language_string($albumobj->get("title"), $locale)) . '" href="' . $protocol . '://' . $itemlink . '">' . $thumburl . '</a>' . get_language_string(get_language_string($item->get("desc"), $locale)) . ']]>'; $videocontent = '<![CDATA[<a title="' . html_encode(get_language_string($item->get("title"), $locale)) . ' in ' . html_encode(get_language_string($albumobj->getTitle(), $locale)) . '" href="' . $protocol . '://' . $itemlink . '"><img src="' . $protocol . '://' . $host . $item->getThumb() . '" alt="' . get_language_string(get_language_string($item->get("title"), $locale)) . '" /></a>' . get_language_string(get_language_string($item->get("desc"), $locale)) . ']]>'; $datecontent = '<![CDATA[Date: ' . zpFormattedDate(DATE_FORMAT, $item->get('mtime')) . ']]>'; } else { $galleryobj = new Gallery(); $albumitem = new Album($galleryobj, $item['folder']); $totalimages = $albumitem->getNumImages(); $itemlink = $host . WEBPATH . $albumpath . pathurlencode($albumitem->name); $thumb = $albumitem->getAlbumThumbImage(); $thumburl = '<img border="0" src="' . $thumb->getCustomImage($size, NULL, NULL, NULL, NULL, NULL, NULL, TRUE) . '" alt="' . html_encode(get_language_string($albumitem->get("title"), $locale)) . '" />'; $title = get_language_string($albumitem->get("title"), $locale); if (true || getOption("feed_sortorder_albums") == "latestupdated") { $filechangedate = filectime(ALBUM_FOLDER_SERVERPATH . internalToFilesystem($albumitem->name)); $latestimage = query_single_row("SELECT mtime FROM " . prefix('images') . " WHERE albumid = " . $albumitem->getAlbumID() . " AND `show` = 1 ORDER BY id DESC"); $lastuploaded = query("SELECT COUNT(*) FROM " . prefix('images') . " WHERE albumid = " . $albumitem->getAlbumID() . " AND mtime = " . $latestimage['mtime']); $row = db_fetch_row($lastuploaded); $count = $row[0]; if ($count == 1) { $imagenumber = sprintf(gettext('%s (1 new image)'), $title); } else { $imagenumber = sprintf(gettext('%1$s (%2$s new images)'), $title, $count); } $itemcontent = '<![CDATA[<a title="' . $title . '" href="' . $protocol . '://' . $itemlink . '">' . $thumburl . '</a>' . '<p>' . html_encode($imagenumber) . '</p>' . html_encode(get_language_string($albumitem->get("desc"), $locale)) . ']]>'; $videocontent = ''; $datecontent = '<![CDATA[' . sprintf(gettext("Last update: %s"), zpFormattedDate(DATE_FORMAT, $filechangedate)) . ']]>'; } else { if ($totalimages == 1) { $imagenumber = sprintf(gettext('%s (1 image)'), $title); } else {
/** * Uptates the database with all changes */ function save() { if (DEBUG_LOGIN) { debugLogVar("Zenphoto_Administrator->save()", $this); } $objects = $this->getObjects(); $gallery = new Gallery(); if (is_null($this->get('date'))) { $this->set('date', date('Y-m-d H:i:s')); } parent::save(); $id = $this->getID(); if (is_array($objects)) { $sql = "DELETE FROM " . prefix('admin_to_object') . ' WHERE `adminid`=' . $id; $result = query($sql, false); if ($result) { foreach ($objects as $object) { if (array_key_exists('edit', $object)) { $edit = $object['edit'] | 32767 & ~(MANAGED_OBJECT_RIGHTS_VIEW_IMAGE | MANAGED_OBJECT_RIGHTS_EDIT | MANAGED_OBJECT_RIGHTS_UPLOAD); } else { $edit = 32767; } switch ($object['type']) { case 'album': $album = new Album($gallery, $object['data']); $albumid = $album->getAlbumID(); $sql = "INSERT INTO " . prefix('admin_to_object') . " (adminid, objectid, type, edit) VALUES ({$id}, {$albumid}, 'album', {$edit})"; $result = query($sql); break; case 'pages': $sql = 'SELECT * FROM ' . prefix('pages') . ' WHERE `titlelink`=' . db_quote($object['data']); $result = query_single_row($sql); if (is_array($result)) { $objectid = $result['id']; $sql = "INSERT INTO " . prefix('admin_to_object') . " (adminid, objectid, type, edit) VALUES ({$id}, {$objectid}, 'pages', {$edit})"; $result = query($sql); } break; case 'news': $sql = 'SELECT * FROM ' . prefix('news_categories') . ' WHERE `titlelink`=' . db_quote($object['data']); $result = query_single_row($sql); if (is_array($result)) { $objectid = $result['id']; $sql = "INSERT INTO " . prefix('admin_to_object') . " (adminid, objectid, type, edit) VALUES ({$id}, {$objectid}, 'news', {$edit})"; $result = query($sql); } break; } } } } }
/** * Saves an admin user's settings * * @param string $user The username of the admin * @param string $pass The password associated with the user name (md5) * @param string $name The display name of the admin * @param string $email The email address of the admin * @param bit $rights The administrating rites for the admin * @param array $albums an array of albums that the admin can access. (If empty, access is to all albums) */ function saveAdmin($user, $pass, $name, $email, $rights, $albums) { if (DEBUG_LOGIN) { debugLog("saveAdmin({$user}, {$pass}, {$name}, {$email}, {$rights}, {$albums})"); } $sql = "SELECT `name`, `id` FROM " . prefix('administrators') . " WHERE `user` = '{$user}'"; $result = query_single_row($sql); if ($result) { $id = $result['id']; if (is_null($pass)) { $password = ''; } else { $password = "******" . escape($pass); } if (is_null($rights)) { $rightsset = ''; } else { $rightsset = "', `rights`='" . escape($rights); } $sql = "UPDATE " . prefix('administrators') . "SET `name`='" . escape($name) . $password . "', `email`='" . escape($email) . $rightsset . "' WHERE `id`='" . $id . "'"; $result = query($sql); if (DEBUG_LOGIN) { debugLog("updating[{$id}]:{$result}"); } } else { if (is_null($pass)) { $pass = passwordHash($user, $pass); } $sql = "INSERT INTO " . prefix('administrators') . " (user, password, name, email, rights) VALUES ('" . escape($user) . "','" . escape($pass) . "','" . escape($name) . "','" . escape($email) . "','" . $rights . "')"; $result = query($sql); $sql = "SELECT `name`, `id` FROM " . prefix('administrators') . " WHERE `user` = '{$user}'"; $result = query_single_row($sql); $id = $result['id']; if (DEBUG_LOGIN) { debugLog("inserting[{$id}]:{$result}"); } } $gallery = new Gallery(); if (is_array($albums)) { $sql = "DELETE FROM " . prefix('admintoalbum') . " WHERE `adminid`={$id}"; $result = query($sql); foreach ($albums as $albumname) { $album = new Album($gallery, $albumname); $albumid = $album->getAlbumID(); $sql = "INSERT INTO " . prefix('admintoalbum') . " (adminid, albumid) VALUES ({$id}, {$albumid})"; $result = query($sql); } } }