Пример #1
0
$albpublish = $_zp_gallery->getAlbumPublish();
$imgpublish = $_zp_gallery->getImagePublish();
if (isset($_POST['publish_date'])) {
    $requestdate = dateTimeConvert(sanitize($_POST['publish_date']));
} else {
    $requestdate = date('Y-m-d H:i:s');
}
$albumidlist = '';
$albumids = '';
if (zp_loggedin(ADMIN_RIGHTS)) {
    $albumlist = $_zp_gallery->getAlbums();
} else {
    $albumlist = getManagedAlbumList();
    $albumIDs = array();
    foreach ($albumlist as $albumname) {
        $subalbums = getAllSubAlbumIDs($albumname);
        foreach ($subalbums as $ID) {
            $albumIDs[] = $ID['id'];
        }
    }
    $i = 0;
    foreach ($albumIDs as $ID) {
        if ($i > 0) {
            $albumidlist .= ' OR ';
            $albumids .= ' OR ';
        }
        $albumidlist .= prefix('images') . '.albumid=' . $ID;
        $albumids .= '`id`=' . $ID;
        $i++;
    }
    if (!empty($albumlist)) {
Пример #2
0
/**
 * Gets an array of comments for the current admin
 *
 * @param int $number how many comments desired
 * @return array
 */
function fetchComments($number)
{
    if ($number) {
        $limit = " LIMIT {$number}";
    } else {
        $limit = '';
    }
    $comments = array();
    if (zp_loggedin(ADMIN_RIGHTS | COMMENT_RIGHTS)) {
        if (zp_loggedin(ADMIN_RIGHTS | MANAGE_ALL_ALBUM_RIGHTS)) {
            $sql = "SELECT *, (date + 0) AS date FROM " . prefix('comments') . " ORDER BY id DESC{$limit}";
            $comments = query_full_array($sql);
        } else {
            $albumlist = getManagedAlbumList();
            $albumIDs = array();
            foreach ($albumlist as $albumname) {
                $subalbums = getAllSubAlbumIDs($albumname);
                foreach ($subalbums as $ID) {
                    $albumIDs[] = $ID['id'];
                }
            }
            if (count($albumIDs) > 0) {
                $sql = "SELECT  *, (`date` + 0) AS date FROM " . prefix('comments') . " WHERE ";
                $sql .= " (`type`='albums' AND (";
                $i = 0;
                foreach ($albumIDs as $ID) {
                    if ($i > 0) {
                        $sql .= " OR ";
                    }
                    $sql .= "(" . prefix('comments') . ".ownerid={$ID})";
                    $i++;
                }
                $sql .= ")) ";
                $sql .= " ORDER BY id DESC{$limit}";
                $albumcomments = query($sql);
                if ($albumcomments) {
                    while ($comment = db_fetch_assoc($albumcomments)) {
                        $comments[$comment['id']] = $comment;
                    }
                    db_free_result($albumcomments);
                }
                $sql = "SELECT *, " . prefix('comments') . ".id as id, " . prefix('comments') . ".name as name, (" . prefix('comments') . ".date + 0) AS date, " . prefix('images') . ".`albumid` as albumid," . prefix('images') . ".`id` as imageid" . " FROM " . prefix('comments') . "," . prefix('images') . " WHERE ";
                $sql .= "(`type` IN (" . zp_image_types("'") . ") AND (";
                $i = 0;
                foreach ($albumIDs as $ID) {
                    if ($i > 0) {
                        $sql .= " OR ";
                    }
                    $sql .= "(" . prefix('comments') . ".ownerid=" . prefix('images') . ".id AND " . prefix('images') . ".albumid={$ID})";
                    $i++;
                }
                $sql .= "))";
                $sql .= " ORDER BY " . prefix('images') . ".`id` DESC{$limit}";
                $imagecomments = query($sql);
                if ($imagecomments) {
                    while ($comment = db_fetch_assoc($imagecomments)) {
                        $comments[$comment['id']] = $comment;
                    }
                    db_free_result($imagecomments);
                }
                krsort($comments);
                if ($number) {
                    if ($number < count($comments)) {
                        $comments = array_slice($comments, 0, $number);
                    }
                }
            }
        }
    }
    return $comments;
}
Пример #3
0
/**
 * emits the html for editing album information
 * called in edit album and mass edit
 * @param string $index the index of the entry in mass edit or '0' if single album
 * @param object $album the album object
 * @param bool $collapse_tags set true to initially hide tab list
 * @since 1.1.3
 */
function printAlbumEditForm($index, $album, $collapse_tags)
{
    global $sortby, $gallery, $mcr_albumlist, $albumdbfields, $imagedbfields, $_thumb_field_text;
    $tagsort = getTagOrder();
    if ($index == 0) {
        if (isset($saved)) {
            $album->setSubalbumSortType('manual');
        }
        $suffix = $prefix = '';
    } else {
        $prefix = "{$index}-";
        $suffix = "_{$index}";
        echo "<p><em><strong>" . $album->name . "</strong></em></p>";
    }
    ?>
	<input type="hidden" name="<?php 
    echo $prefix;
    ?>
folder" value="<?php 
    echo $album->name;
    ?>
" />
	<input type="hidden" name="tagsort" value="<?php 
    echo html_encode($tagsort);
    ?>
" />
	<input	type="hidden" name="<?php 
    echo $prefix;
    ?>
password_enabled" id="password_enabled<?php 
    echo $suffix;
    ?>
" value="0" />
	<span class="buttons">
		<?php 
    $parent = dirname($album->name);
    if ($parent == '/' || $parent == '.' || empty($parent)) {
        $parent = '';
    } else {
        $parent = '&amp;album=' . $parent . '&amp;tab=subalbuminfo';
    }
    ?>
		<a title="<?php 
    echo gettext('Back to the album list');
    ?>
" href="<?php 
    echo WEBPATH . '/' . ZENFOLDER . '/admin-edit.php?page=edit' . $parent;
    ?>
">
		<img	src="images/arrow_left_blue_round.png" alt="" />
		<strong><?php 
    echo gettext("Back");
    ?>
</strong>
		</a>
		<button type="submit" title="<?php 
    echo gettext("Apply");
    ?>
">
		<img	src="images/pass.png" alt="" />
		<strong><?php 
    echo gettext("Apply");
    ?>
</strong>
		</button>
		<button type="reset" title="<?php 
    echo gettext("Reset");
    ?>
" onclick="javascript:$('.deletemsg').hide();" >
		<img	src="images/fail.png" alt="" />
		<strong><?php 
    echo gettext("Reset");
    ?>
</strong>
		</button>
		<div class="floatright">
		<?php 
    if (!$album->isDynamic()) {
        ?>
			<button type="button" title="<?php 
        echo gettext('New subalbum');
        ?>
" onclick="javascript:newAlbum('<?php 
        echo pathurlencode($album->name);
        ?>
',true);">
			<img src="images/folder.png" alt="" />
			<strong><?php 
        echo gettext('New subalbum');
        ?>
</strong>
			</button>
			<?php 
    }
    ?>
		<a title="<?php 
    echo gettext('View Album');
    ?>
" href="<?php 
    echo WEBPATH . "/index.php?album=" . pathurlencode($album->getFolder());
    ?>
">
		<img src="images/view.png" alt="" />
		<strong><?php 
    echo gettext('View Album');
    ?>
</strong>
		</a>
		</div>
	</span>
<br clear="all" /><br />
	<table>
		<tr>
			<td width="70%" valign="top">
				<table>
					<tr>
						<td valign="top"><?php 
    echo gettext("Owner");
    ?>
</td>
						<td>
							<?php 
    if (zp_loggedin(MANAGE_ALL_ALBUM_RIGHTS)) {
        ?>
								<select name="<?php 
        echo $prefix;
        ?>
-owner">
									<?php 
        echo admin_album_list($album->getOwner());
        ?>
								</select>
								<?php 
    } else {
        echo $album->getOwner();
    }
    ?>
						</td>
					</tr>
					<tr>
						<td align="left" valign="top" width="150">
						<?php 
    echo gettext("Album Title");
    ?>
:
						</td>
						<td>
						<?php 
    print_language_string_list($album->get('title'), $prefix . "albumtitle");
    ?>
						</td>
					</tr>

					<tr>
						<td align="left" valign="top" >
						<?php 
    echo gettext("Album Description:");
    ?>
						</td>
						<td>
						<?php 
    print_language_string_list($album->get('desc'), $prefix . "albumdesc", true, NULL, 'texteditor');
    ?>
						</td>
					</tr>
					<?php 
    if (GALLERY_SECURITY != 'private') {
        ?>
						<tr class="password<?php 
        echo $suffix;
        ?>
extrashow" <?php 
        if (GALLERY_SECURITY == 'private') {
            echo 'style="display:none"';
        }
        ?>
 >
							<td align="left" valign="top">
								<p>
									<a href="javascript:toggle_passwords('<?php 
        echo $suffix;
        ?>
',true);">
									<?php 
        echo gettext("Album password:"******"images/lock_open.png" />
								<?php 
        } else {
            $x = '          ';
            ?>
							<a onclick="resetPass();" title="<?php 
            echo gettext('clear password');
            ?>
"><img src="images/lock.png" /></a>
								<?php 
        }
        ?>
							</td>
						</tr>
						<tr class="password<?php 
        echo $suffix;
        ?>
extrahide" style="display:none" >
							<td align="left" valign="top">
								<p>
								<a href="javascript:toggle_passwords('<?php 
        echo $suffix;
        ?>
',false);">
									<?php 
        echo gettext("Album guest user:"******"Album password:"******"repeat:");
        ?>
								</p>
								<p>
								<?php 
        echo gettext("Password hint:");
        ?>
								</p>
							</td>
							<td>
								<p>
									<input type="text" size="<?php 
        echo TEXT_INPUT_SIZE;
        ?>
" id="user_name" name="<?php 
        echo $prefix;
        ?>
albumuser" value="<?php 
        echo $album->getUser();
        ?>
" />
								</p>
								<p>
								<input type="password" size="<?php 
        echo TEXT_INPUT_SIZE;
        ?>
" id="pass" name="<?php 
        echo $prefix;
        ?>
albumpass"  value="<?php 
        echo $x;
        ?>
" />
								<br />
								<input type="password" size="<?php 
        echo TEXT_INPUT_SIZE;
        ?>
" id="pass_2" name="<?php 
        echo $prefix;
        ?>
albumpass_2" value="<?php 
        echo $x;
        ?>
" />
								</p>
								<p>
								<?php 
        print_language_string_list($album->get('password_hint'), $prefix . "albumpass_hint", false, NULL, 'hint');
        ?>
								</p>
							</td>
						</tr>
					<?php 
    }
    $d = $album->getDateTime();
    if ($d == "0000-00-00 00:00:00") {
        $d = "";
    }
    ?>


					<tr>
						<td align="left" valign="top"><?php 
    echo gettext("Date:");
    ?>
 </td>
						<td width="400">
							<script type="text/javascript">
								// <!-- <![CDATA[
								$(function() {
									$("#datepicker<?php 
    echo $suffix;
    ?>
").datepicker({
													showOn: 'button',
													buttonImage: 'images/calendar.png',
													buttonText: '<?php 
    echo gettext('calendar');
    ?>
',
													buttonImageOnly: true
													});
								});
								// ]]> -->
							</script>
							<input type="text" id="datepicker<?php 
    echo $suffix;
    ?>
" size="20" name="<?php 
    echo $prefix;
    ?>
albumdate" value="<?php 
    echo $d;
    ?>
" />
						</td>
					</tr>
					<tr>
						<td align="left" valign="top"><?php 
    echo gettext("Location:");
    ?>
 </td>
						<td>
						<?php 
    print_language_string_list($album->getLocation(), $prefix . "albumlocation");
    ?>
						</td>
					</tr>
					<?php 
    $custom = zp_apply_filter('edit_album_custom_data', '', $album, $prefix);
    if (empty($custom)) {
        ?>
					<tr>
						<td align="left" valign="top"><?php 
        echo gettext("Custom data:");
        ?>
</td>
						<td><?php 
        print_language_string_list($album->get('custom_data'), $prefix . "album_custom_data", true, NULL, 'texteditor_albumcustomdata');
        ?>
</td>
					</tr>
						<?php 
    } else {
        echo $custom;
    }
    $sort = $sortby;
    if (!$album->isDynamic()) {
        $sort[gettext('Manual')] = 'manual';
    }
    $sort[gettext('Custom')] = 'custom';
    /*
     * not recommended--screws with peoples minds during pagination!
    	$sort[gettext('Random')] = 'random';
    */
    ?>
					<tr>
						<td align="left" valign="top"><?php 
    echo gettext("Sort subalbums by:");
    ?>
 </td>
						<td>
							<span class="nowrap">
								<select id="albumsortselect<?php 
    echo $prefix;
    ?>
" name="<?php 
    echo $prefix;
    ?>
subalbumsortby" onchange="update_direction(this,'album_direction_div<?php 
    echo $suffix;
    ?>
','album_custom_div<?php 
    echo $suffix;
    ?>
')">
								<?php 
    if (is_null($album->getParent())) {
        $globalsort = gettext("*gallery album sort order");
    } else {
        $globalsort = gettext("*parent album subalbum sort order");
    }
    echo "\n<option value =''>{$globalsort}</option>";
    $cvt = $type = strtolower($album->get('subalbum_sort_type'));
    if ($type && !in_array($type, $sort)) {
        $cv = array('custom');
    } else {
        $cv = array($type);
    }
    generateListFromArray($cv, $sort, false, true);
    ?>
								</select>
								<?php 
    if ($type == 'manual' || $type == 'random' || $type == '') {
        $dsp = 'none';
    } else {
        $dsp = 'inline';
    }
    ?>
								<label id="album_direction_div<?php 
    echo $suffix;
    ?>
" style="display:<?php 
    echo $dsp;
    ?>
;white-space:nowrap;">
									<?php 
    echo gettext("Descending");
    ?>
									<input type="checkbox" name="<?php 
    echo $prefix;
    ?>
album_sortdirection" value="1" <?php 
    if ($album->getSortDirection('album')) {
        echo "CHECKED";
    }
    ?>
 />
								</label>
							</span>
							<?php 
    $flip = array_flip($sort);
    if (empty($type) || isset($flip[$type])) {
        $dsp = 'none';
    } else {
        $dsp = 'block';
    }
    ?>
							<span id="album_custom_div<?php 
    echo $suffix;
    ?>
" class="customText" style="display:<?php 
    echo $dsp;
    ?>
;white-space:nowrap;">
								<br />
								<?php 
    echo gettext('custom fields:');
    ?>
								<input id="customalbumsort<?php 
    echo $suffix;
    ?>
" class="customalbumsort" name="<?php 
    echo $prefix;
    ?>
customalbumsort" type="text" value="<?php 
    echo html_encode($cvt);
    ?>
"></input>
							</span>
					</td>
				</tr>

				<tr>
					<td align="left" valign="top"><?php 
    echo gettext("Sort images by:");
    ?>
 </td>
						<td>
							<span class="nowrap">
								<select id="imagesortselect<?php 
    echo $prefix;
    ?>
" name="<?php 
    echo $prefix;
    ?>
sortby" onchange="update_direction(this,'image_direction_div<?php 
    echo $suffix;
    ?>
','image_custom_div<?php 
    echo $suffix;
    ?>
')">
								<?php 
    if (is_null($album->getParent())) {
        $globalsort = gettext("*gallery image sort order");
    } else {
        $globalsort = gettext("*parent album image sort order");
    }
    ?>
								<option value =""><?php 
    echo $globalsort;
    ?>
</option>
								<?php 
    $cvt = $type = strtolower($album->get('sort_type'));
    if ($type && !in_array($type, $sort)) {
        $cv = array('custom');
    } else {
        $cv = array($type);
    }
    generateListFromArray($cv, $sort, false, true);
    ?>
								</select>
							<?php 
    if ($type == 'manual' || $type == 'random' || $type == '') {
        $dsp = 'none';
    } else {
        $dsp = 'inline';
    }
    ?>
							<label id="image_direction_div<?php 
    echo $suffix;
    ?>
" style="display:<?php 
    echo $dsp;
    ?>
;white-space:nowrap;">
								<?php 
    echo gettext("Descending");
    ?>
								<input type="checkbox" name="<?php 
    echo $prefix;
    ?>
image_sortdirection" value="1"
									<?php 
    if ($album->getSortDirection('image')) {
        echo ' checked="checked"';
    }
    ?>
 />
							</label>
						</span>
						<?php 
    $flip = array_flip($sort);
    if (empty($type) || isset($flip[$type])) {
        $dsp = 'none';
    } else {
        $dsp = 'block';
    }
    ?>
						<span id="image_custom_div<?php 
    echo $suffix;
    ?>
" class="customText" style="display:<?php 
    echo $dsp;
    ?>
;white-space:nowrap;">
							<br />
							<?php 
    echo gettext('custom fields:');
    ?>
							<input id="customimagesort<?php 
    echo $suffix;
    ?>
" class="customimagesort" name="<?php 
    echo $prefix;
    ?>
customimagesort" type="text" value="<?php 
    echo html_encode($cvt);
    ?>
"></input>
						</span>
					 </td>
				</tr>

				<?php 
    if (is_null($album->getParent())) {
        ?>
					<tr>
						<td align="left" valign="top"><?php 
        echo gettext("Album theme:");
        ?>
 </td>
						<td>
							<select id="album_theme" class="album_theme" name="<?php 
        echo $prefix;
        ?>
album_theme"	<?php 
        if (!zp_loggedin(THEMES_RIGHTS)) {
            echo 'disabled="disabled" ';
        }
        ?>
	>
							<?php 
        $themes = $gallery->getThemes();
        $oldtheme = $album->getAlbumTheme();
        if (empty($oldtheme)) {
            $selected = 'selected="selected"';
        } else {
            $selected = '';
        }
        ?>
							<option value="" style="background-color:LightGray" <?php 
        echo $selected;
        ?>
 ><?php 
        echo gettext('*gallery theme');
        ?>
</option>
							<?php 
        foreach ($themes as $theme => $themeinfo) {
            if ($oldtheme == $theme) {
                $selected = 'selected="selected"';
            } else {
                $selected = '';
            }
            ?>
								<option value = "<?php 
            echo $theme;
            ?>
" <?php 
            echo $selected;
            ?>
 ><?php 
            echo $themeinfo['name'];
            ?>
</option>
							<?php 
        }
        ?>
							</select>
						</td>
					</tr>
					<?php 
    }
    if (!$album->isDynamic()) {
        ?>
					<tr>
						<td align="left" valign="top" width="150"><?php 
        echo gettext("Album watermarks:");
        ?>
 </td>
						<td>
							<?php 
        $current = $album->getWatermark();
        ?>
							<select id="album_watermark" name="<?php 
        echo $prefix;
        ?>
album_watermark">
								<option value="<?php 
        echo NO_WATERMARK;
        ?>
" <?php 
        if ($current == NO_WATERMARK) {
            echo ' selected="selected"';
        }
        ?>
 style="background-color:LightGray"><?php 
        echo gettext('*no watermark');
        ?>
</option>
								<option value="" <?php 
        if (empty($current)) {
            echo ' selected="selected"';
        }
        ?>
 style="background-color:LightGray"><?php 
        echo gettext('*default');
        ?>
</option>
								<?php 
        $watermarks = getWatermarks();
        generateListFromArray(array($current), $watermarks, false, false);
        ?>
							</select>
							<?php 
        echo gettext('Images');
        ?>
							</td>
					</tr>
					<tr>
						<td align="left" valign="top" width="150"></td>
						<td>
							<?php 
        $current = $album->getWatermarkThumb();
        ?>
							<select id="album_watermark_thumb" name="<?php 
        echo $prefix;
        ?>
album_watermark_thumb">
								<option value="<?php 
        echo NO_WATERMARK;
        ?>
" <?php 
        if ($current == NO_WATERMARK) {
            echo ' selected="selected"';
        }
        ?>
 style="background-color:LightGray"><?php 
        echo gettext('*no watermark');
        ?>
</option>
								<option value="" <?php 
        if (empty($current)) {
            echo ' selected="selected"';
        }
        ?>
 style="background-color:LightGray"><?php 
        echo gettext('*default');
        ?>
</option>
								<?php 
        $watermarks = getWatermarks();
        generateListFromArray(array($current), $watermarks, false, false);
        ?>
							</select>
							<?php 
        echo gettext('Thumbs');
        ?>
						</td>
					</tr>
					<?php 
    }
    if ($index == 0) {
        // suppress for mass-edit
        ?>
					<tr>
						<td align="left" valign="top" width="150"><?php 
        echo gettext("Thumbnail:");
        ?>
 </td>
						<td>
						<?php 
        $showThumb = $gallery->getThumbSelectImages();
        $thumb = $album->get('thumb');
        if ($showThumb) {
            ?>
							<script type="text/javascript">
								// <!-- <![CDATA[
								updateThumbPreview(document.getElementById('thumbselect'));
								// ]]> -->
							</script>
							<?php 
        }
        ?>
						<select style="width:320px" <?php 
        if ($showThumb) {
            ?>
class="thumbselect" onchange="updateThumbPreview(this)"	<?php 
        }
        ?>
 name="<?php 
        echo $prefix;
        ?>
thumb">
							<option <?php 
        if ($showThumb) {
            ?>
class="thumboption" style="background-color:#B1F7B6"<?php 
        }
        if ($thumb === '1') {
            ?>
selected="selected"<?php 
        }
        ?>
	value="1"><?php 
        echo $_thumb_field_text[getOption('AlbumThumbSelectField')];
        ?>
							</option>
							<option <?php 
        if ($showThumb) {
            ?>
class="thumboption" style="background-color:#B1F7B6" <?php 
        }
        ?>
								<?php 
        if (empty($thumb) && $thumb !== '1') {
            ?>
 selected="selected" <?php 
        }
        ?>
									value=""><?php 
        echo gettext('randomly selected');
        ?>
							</option>
							<?php 
        if ($album->isDynamic()) {
            $params = $album->getSearchParams();
            $search = new SearchEngine(true);
            $search->setSearchParams($params);
            $images = $search->getImages(0);
            $thumb = $album->get('thumb');
            $imagelist = array();
            foreach ($images as $imagerow) {
                $folder = $imagerow['folder'];
                $filename = $imagerow['filename'];
                $imagelist[] = '/' . $folder . '/' . $filename;
            }
            if (count($imagelist) == 0) {
                $subalbums = $search->getAlbums(0);
                foreach ($subalbums as $folder) {
                    $newalbum = new Album($gallery, $folder);
                    if (!$newalbum->isDynamic()) {
                        $images = $newalbum->getImages(0);
                        foreach ($images as $filename) {
                            $imagelist[] = '/' . $folder . '/' . $filename;
                        }
                    }
                }
            }
            foreach ($imagelist as $imagepath) {
                $list = explode('/', $imagepath);
                $filename = $list[count($list) - 1];
                unset($list[count($list) - 1]);
                $folder = implode('/', $list);
                $albumx = new Album($gallery, $folder);
                $image = newImage($albumx, $filename);
                $selected = $imagepath == $thumb;
                echo "\n<option";
                if ($showThumb) {
                    echo " class=\"thumboption\"";
                    echo " style=\"background-image: url(" . html_encode($image->getSizedImage(80)) . "); background-repeat: no-repeat;\"";
                }
                echo " value=\"" . $imagepath . "\"";
                if ($selected) {
                    echo " selected=\"selected\"";
                }
                echo ">" . $image->getTitle();
                echo " ({$imagepath})";
                echo "</option>";
            }
        } else {
            $images = $album->getImages();
            if (count($images) == 0 && $album->getNumAlbums() > 0) {
                $imagearray = array();
                $albumnames = array();
                $strip = strlen($album->name) + 1;
                $subIDs = getAllSubAlbumIDs($album->name);
                if (!is_null($subIDs)) {
                    foreach ($subIDs as $ID) {
                        $albumnames[$ID['id']] = $ID['folder'];
                        $query = 'SELECT `id` , `albumid` , `filename` , `title` FROM ' . prefix('images') . ' WHERE `albumid` = "' . $ID['id'] . '"';
                        $imagearray = array_merge($imagearray, query_full_array($query));
                    }
                    foreach ($imagearray as $imagerow) {
                        $filename = $imagerow['filename'];
                        $folder = $albumnames[$imagerow['albumid']];
                        $imagepath = substr($folder, $strip) . '/' . $filename;
                        if (substr($imagepath, 0, 1) == '/') {
                            $imagepath = substr($imagepath, 1);
                        }
                        $albumx = new Album($gallery, $folder);
                        $image = newImage($albumx, $filename);
                        if (is_valid_image($filename)) {
                            $selected = $imagepath == $thumb;
                            echo "\n<option";
                            if ($gallery->getThumbSelectImages()) {
                                echo " class=\"thumboption\"";
                                echo " style=\"background-image: url(" . html_encode($image->getSizedImage(80)) . "); background-repeat: no-repeat;\"";
                            }
                            echo " value=\"" . $imagepath . "\"";
                            if ($selected) {
                                echo " selected=\"selected\"";
                            }
                            echo ">" . $image->getTitle();
                            echo " ({$imagepath})";
                            echo "</option>";
                        }
                    }
                }
            } else {
                foreach ($images as $filename) {
                    $image = newImage($album, $filename);
                    $selected = $filename == $album->get('thumb');
                    if (is_valid_image($filename)) {
                        echo "\n<option";
                        if ($gallery->getThumbSelectImages()) {
                            echo " class=\"thumboption\"";
                            echo " style=\"background-image: url(" . html_encode($image->getSizedImage(80)) . "); background-repeat: no-repeat;\"";
                        }
                        echo " value=\"" . $filename . "\"";
                        if ($selected) {
                            echo " selected=\"selected\"";
                        }
                        echo ">" . $image->getTitle();
                        if ($filename != $image->getTitle()) {
                            echo " ({$filename})";
                        }
                        echo "</option>";
                    }
                }
            }
        }
        ?>
						</select>
						</td>
					</tr>
		<?php 
    }
    ?>
	<tr valign="top">
		<td class="topalign-nopadding"><br /><?php 
    echo gettext("Codeblocks:");
    ?>
</td>
		<td>
		<br />
			<div class="tabs">
				<ul class="tabNavigation">
					<li><a href="#first"><?php 
    echo gettext("Codeblock 1");
    ?>
</a></li>
					<li><a href="#second"><?php 
    echo gettext("Codeblock 2");
    ?>
</a></li>
					<li><a href="#third"><?php 
    echo gettext("Codeblock 3");
    ?>
</a></li>
				</ul>
					<?php 
    $getcodeblock = $album->getCodeblock();
    if (!empty($getcodeblock)) {
        $codeblock = unserialize($getcodeblock);
    } else {
        $codeblock[1] = "";
        $codeblock[2] = "";
        $codeblock[3] = "";
    }
    ?>
				<div id="first">
					<textarea name="<?php 
    echo $prefix;
    ?>
codeblock1" id="codeblock1<?php 
    echo $suffix;
    ?>
" rows="40" cols="60"><?php 
    echo html_encode($codeblock[1]);
    ?>
</textarea>
				</div>
				<div id="second">
					<textarea name="<?php 
    echo $prefix;
    ?>
codeblock2" id="codeblock2<?php 
    echo $suffix;
    ?>
" rows="40" cols="60"><?php 
    echo html_encode($codeblock[2]);
    ?>
</textarea>
				</div>
				<div id="third">
					<textarea name="<?php 
    echo $prefix;
    ?>
codeblock3" id="codeblock3<?php 
    echo $suffix;
    ?>
" rows="40" cols="60"><?php 
    echo html_encode($codeblock[3]);
    ?>
</textarea>
				</div>
			</div>
		</td>
	</tr>
</table>
			</td>
			<?php 
    $bglevels = array('#fff', '#f8f8f8', '#efefef', '#e8e8e8', '#dfdfdf', '#d8d8d8', '#cfcfcf', '#c8c8c8');
    ?>
			<td valign="top">
				<h2 class="h2_bordered_edit"><?php 
    echo gettext("General");
    ?>
</h2>
				<div class="box-edit">

						<label class="checkboxlabel">
							<input type="checkbox" name="<?php 
    echo $prefix;
    ?>
Published" value="1" <?php 
    if ($album->getShow()) {
        echo ' checked="checked"';
    }
    ?>
 />
							<?php 
    echo gettext("Published");
    ?>
						</label>
						<label class="checkboxlabel">
							<input type="checkbox" name="<?php 
    echo $prefix . 'allowcomments';
    ?>
" value="1" <?php 
    if ($album->getCommentsAllowed()) {
        echo ' checked="checked"';
    }
    ?>
 />
							<?php 
    echo gettext("Allow Comments");
    ?>
						</label>
						<?php 
    $hc = $album->get('hitcounter');
    if (empty($hc)) {
        $hc = '0';
    }
    ?>
						<label class="checkboxlabel">
							<input type="checkbox" name="<?php 
    echo $prefix;
    ?>
reset_hitcounter" />
							<?php 
    echo sprintf(gettext("Reset hitcounter (%u hits)"), $hc);
    ?>
						</label>
						<?php 
    $tv = $album->get('total_value');
    $tc = $album->get('total_votes');
    if ($tc > 0) {
        $hc = $tv / $tc;
        ?>
							<label class="checkboxlabel">
								<input type="checkbox" id="reset_rating<?php 
        echo $suffix;
        ?>
" name="<?php 
        echo $prefix;
        ?>
reset_rating" value="1" />
								<?php 
        printf(gettext('Reset rating (%u stars)'), $hc);
        ?>
							</label>
							<?php 
    } else {
        ?>
									<label class="checkboxlabel">
										<input type="checkbox" name="<?php 
        echo $prefix;
        ?>
reset_rating" value="1" disabled="disabled"/>
										<?php 
        echo gettext('Reset rating (unrated)');
        ?>
									</label>
							<?php 
    }
    ?>

					<br clear="all" />
				</div>
				<!-- **************** Move/Copy/Rename ****************** -->
				<h2 class="h2_bordered_edit"><?php 
    echo gettext("Utilities");
    ?>
</h2>
				<div class="box-edit">

						<label class="checkboxlabel">
							<input type="radio" id="a-<?php 
    echo $prefix;
    ?>
move" name="a-<?php 
    echo $prefix;
    ?>
MoveCopyRename" value="move"
								onclick="toggleAlbumMoveCopyRename('<?php 
    echo $prefix;
    ?>
', 'movecopy');"/>
							<?php 
    echo gettext("Move");
    ?>
						</label>

						<label class="checkboxlabel">
							<input type="radio" id="a-<?php 
    echo $prefix;
    ?>
copy" name="a-<?php 
    echo $prefix;
    ?>
MoveCopyRename" value="copy"
								onclick="toggleAlbumMoveCopyRename('<?php 
    echo $prefix;
    ?>
', 'movecopy');"/>
							<?php 
    echo gettext("Copy");
    ?>
						</label>

						<label class="checkboxlabel">
							<input type="radio" id="a-<?php 
    echo $prefix;
    ?>
rename" name="a-<?php 
    echo $prefix;
    ?>
MoveCopyRename" value="rename"
								onclick="toggleAlbumMoveCopyRename('<?php 
    echo $prefix;
    ?>
', 'rename');"/>
							<?php 
    echo gettext("Rename Folder");
    ?>
						</label>
						<label class="checkboxlabel">
								<input type="radio" id="Delete-<?php 
    echo $prefix;
    ?>
" name="a-<?php 
    echo $prefix;
    ?>
MoveCopyRename" value="delete"
									onclick="image_deleteconfirm(this,'<?php 
    echo $prefix;
    ?>
',deleteAlbum1)" />
							<?php 
    echo gettext("Delete album");
    ?>
						</label>
						<br clear="all" />
						<div class="deletemsg" id="deletemsg<?php 
    echo $prefix;
    ?>
"	style="padding-top: .5em; padding-left: .5em; color: red; display: none">
						<?php 
    echo gettext('Album will be deleted when changes are applied.');
    ?>
						<p class="buttons"><a	href="javascript:toggleMoveCopyRename('<?php 
    echo $prefix;
    ?>
', '');"><img src="images/reset.png" alt="" /><?php 
    echo gettext("Cancel");
    ?>
</a></p>
						</div>
					<div id="a-<?php 
    echo $prefix;
    ?>
movecopydiv" style="padding-top: .5em; padding-left: .5em; display: none;">
						<?php 
    echo gettext("to:");
    ?>
						<select id="a-<?php 
    echo $prefix;
    ?>
albumselectmenu" name="a-<?php 
    echo $prefix;
    ?>
albumselect" onchange="">
							<?php 
    $exclude = $album->name;
    if (count(explode('/', $exclude)) > 1 && zp_loggedin(MANAGE_ALL_ALBUM_RIGHTS)) {
        ?>
								<option value="" selected="selected">/</option>
								<?php 
    }
    foreach ($mcr_albumlist as $fullfolder => $albumtitle) {
        // don't allow copy in place or to subalbums
        if ($fullfolder == dirname($exclude) || $fullfolder == $exclude || strpos($fullfolder, $exclude . '/') === 0) {
            $disabled = ' disabled="disabled"';
        } else {
            $disabled = '';
        }
        // Get rid of the slashes in the subalbum, while also making a subalbum prefix for the menu.
        $singlefolder = $fullfolder;
        $saprefix = '';
        $salevel = 0;
        while (strstr($singlefolder, '/') !== false) {
            $singlefolder = substr(strstr($singlefolder, '/'), 1);
            $saprefix = "&nbsp; &nbsp;&nbsp;" . $saprefix;
            $salevel = ($salevel + 1) % 8;
        }
        echo '<option value="' . $fullfolder . '"' . ($salevel > 0 ? ' style="background-color: ' . $bglevels[$salevel] . ';"' : '') . "{$disabled}>" . $saprefix . $singlefolder . "</option>\n";
    }
    ?>
						</select>
						<br clear="all" /><br />
						<p class="buttons">
							<a href="javascript:toggleAlbumMoveCopyRename('<?php 
    echo $prefix;
    ?>
', '');"><img src="images/reset.png" alt="" /><?php 
    echo gettext("Cancel");
    ?>
</a>
						</p>
					</div>
					<div id="a-<?php 
    echo $prefix;
    ?>
renamediv" style="padding-top: .5em; padding-left: .5em; display: none;">
						<?php 
    echo gettext("to:");
    ?>
						<input name="a-<?php 
    echo $prefix;
    ?>
renameto" type="text" value="<?php 
    echo basename($album->name);
    ?>
"/><br />
						<br clear="all" />
						<p class="buttons">
						<a href="javascript:toggleAlbumMoveCopyRename('<?php 
    echo $prefix;
    ?>
', '');"><img src="images/reset.png" alt="" /><?php 
    echo gettext("Cancel");
    ?>
</a>
						</p>
					</div>
					<span style="line-height: 0em;"><br clear="all" /></span>
					<?php 
    echo zp_apply_filter('edit_album_utilities', '', $album, $prefix);
    ?>
					<span style="line-height: 0em;"><br clear="all" /></span>
					</div>
					<h2 class="h2_bordered_edit"><?php 
    echo gettext("Tags");
    ?>
</h2>
					<div class="box-edit-unpadded">
						<?php 
    $tagsort = getTagOrder();
    tagSelector($album, 'tags_' . $prefix, false, $tagsort);
    ?>
					</div>
			</td>
		</tr>
	</table>
	<?php 
    if ($album->isDynamic()) {
        ?>
		<table>
			<tr>
				<td align="left" valign="top" width="150"><?php 
        echo gettext("Dynamic album search:");
        ?>
</td>
				<td>
					<table class="noinput">
						<tr>
							<td><?php 
        echo html_encode(urldecode($album->getSearchParams()));
        ?>
</td>
						</tr>
					</table>
				</td>
			</tr>
		</table>
	<?php 
    }
    ?>


<br clear="all" />
	<span class="buttons">
		<a title="<?php 
    echo gettext('Back to the album list');
    ?>
" href="<?php 
    echo WEBPATH . '/' . ZENFOLDER . '/admin-edit.php?page=edit' . $parent;
    ?>
">
		<img	src="images/arrow_left_blue_round.png" alt="" />
		<strong><?php 
    echo gettext("Back");
    ?>
</strong>
		</a>
		<button type="submit" title="<?php 
    echo gettext("Apply");
    ?>
">
		<img	src="images/pass.png" alt="" />
		<strong><?php 
    echo gettext("Apply");
    ?>
</strong>
		</button>
		<button type="reset" title="<?php 
    echo gettext("Reset");
    ?>
" onclick="javascript:$('.deletemsg').hide();">
		<img	src="images/fail.png" alt="" />
		<strong><?php 
    echo gettext("Reset");
    ?>
</strong>
		</button>
		<div class="floatright">
		<?php 
    if (!$album->isDynamic()) {
        ?>
			<button type="button" title="<?php 
        echo gettext('New subalbum');
        ?>
" onclick="javascript:newAlbum('<?php 
        echo pathurlencode($album->name);
        ?>
',true);">
			<img src="images/folder.png" alt="" />
			<strong><?php 
        echo gettext('New subalbum');
        ?>
</strong>
			</button>
			<?php 
    }
    ?>
		<a title="<?php 
    echo gettext('View Album');
    ?>
" href="<?php 
    echo WEBPATH . "/index.php?album=" . pathurlencode($album->getFolder());
    ?>
">
		<img src="images/view.png" alt="" />
		<strong><?php 
    echo gettext('View Album');
    ?>
</strong>
		</a>
		</div>
	</span>
<br clear="all" />
<?php 
}
/**
 * Returns a array of image objects of image statistic according to $option
 *
 * @param string $number the number of images to get
 * @param string $option "popular" for the most popular images,
 * 		"popular" for the most popular albums,
 * 		"latest" for the latest uploaded by id (Discovery)
 * 		"latest-date" for the latest by date
 * 		"latest-mtime" for the latest by mtime
 *   	"latest-publishdate" for the latest by publishdate
 *    "mostrated" for the most voted,
 * 		"toprated" for the best voted
 * 		"latestupdated" for the latest updated
 * 		"random" for random order (yes, strictly no statistical order...)
 * @param string $albumfolder foldername of an specific album
 * @param bool $collection only if $albumfolder is set: true if you want to get statistics from this album and all of its subalbums
 * @param integer $threshold the minimum number of ratings (for rating options) or hits (for popular option) an image must have to be included in the list. (Default 0)
 * @return string
 */
function getImageStatistic($number, $option, $albumfolder = '', $collection = false, $threshold = 0, $sortdirection = 'desc')
{
    global $_zp_gallery;
    if ($albumfolder) {
        $obj = newAlbum($albumfolder);
        $albumWhere = ' AND albums.id = ' . $obj->getID();
        if ($collection) {
            $albumWhere = '';
            $ids = getAllSubAlbumIDs($albumfolder);
            if (!empty($ids)) {
                foreach ($ids as $id) {
                    $getids[] = $id['id'];
                }
                $getids = implode(', ', $getids);
                $albumWhere = ' AND albums.id IN (' . $getids . ')';
            }
        } else {
            $albumWhere = ' AND albums.id = ' . $obj->getID();
        }
    } else {
        $obj = $_zp_gallery;
        $albumWhere = '';
    }
    if (($option == 'toprated' || $option == 'mostrated') && $threshold > 0) {
        $albumWhere .= 'AND images.total_votes >= ' . $threshold;
    }
    if ($option == 'popular' && $threshold > 0) {
        $albumWhere .= 'AND images.hitcounter >= ' . $threshold;
    }
    switch (strtolower($sortdirection)) {
        case 'desc':
        default:
            $sortdir = 'DESC';
            break;
        case 'asc':
            $sortdir = 'ASC';
            break;
    }
    switch ($option) {
        case "popular":
            $sortorder = "images.hitcounter";
            break;
        case "latest-date":
            $sortorder = "images.date";
            break;
        case "latest-mtime":
            $sortorder = "images.mtime";
            break;
        default:
        case "latest":
            $sortorder = "images.id";
            break;
        case "latest-publishdate":
            $sortorder = "IFNULL(images.publishdate,images.date)";
            break;
        case "mostrated":
            $sortorder = "images.total_votes";
            break;
        case "toprated":
            $sortorder = "(images.total_value/images.total_votes) DESC, images.total_value";
            break;
        case "random":
            $sortorder = "RAND()";
            break;
    }
    $imageArray = array();
    if (!empty($albumfolder) && $obj->isDynamic()) {
        $sorttype = str_replace('images.', '', $sortorder);
        $images = $obj->getImages(0, 0, $sorttype, $sortdir);
        foreach ($images as $image) {
            $image = newImage($obj, $image);
            if ($image->exists && $image->checkAccess() && ($image->getShow() || zp_loggedin(VIEW_UNPUBLISHED_RIGHTS))) {
                $imageArray[] = $image;
                if (count($imageArray) >= $number) {
                    // got enough
                    break;
                }
            }
        }
    } else {
        $result = query("SELECT images.filename AS filename, albums.folder AS folder FROM " . prefix('images') . " AS images, " . prefix('albums') . " AS albums " . "WHERE (images.albumid = albums.id) " . $albumWhere . " ORDER BY " . $sortorder . " " . $sortdir);
        while ($row = db_fetch_assoc($result)) {
            $image = newImage(NULL, $row, true);
            if ($image->exists && $image->checkAccess() && ($image->getShow() || zp_loggedin(VIEW_UNPUBLISHED_RIGHTS))) {
                $imageArray[] = $image;
                if (count($imageArray) >= $number) {
                    // got enough
                    break;
                }
            }
        }
        db_free_result($result);
    }
    return $imageArray;
}
Пример #5
0
/**
 * Gets an array of comments for the current admin
 *
 * @param int $number how many comments desired
 * @return array
 */
function fetchComments($number)
{
    if ($number) {
        $limit = " LIMIT {$number}";
    } else {
        $limit = '';
    }
    global $_zp_loggedin;
    $comments = array();
    if ($_zp_loggedin & ADMIN_RIGHTS) {
        $sql = "SELECT `id`, `name`, `website`, `type`, `ownerid`," . " (date + 0) AS date, `comment`, `email`, `inmoderation`, `ip`, `private`, `anon` FROM " . prefix('comments') . " ORDER BY id DESC{$limit}";
        $comments = query_full_array($sql);
    } else {
        if ($_zp_loggedin & COMMENT_RIGHTS) {
            $albumlist = getManagedAlbumList();
            $albumIDs = array();
            foreach ($albumlist as $albumname) {
                $subalbums = getAllSubAlbumIDs($albumname);
                foreach ($subalbums as $ID) {
                    $albumIDs[] = $ID['id'];
                }
            }
            if (count($albumIDs) > 0) {
                $sql = "SELECT  `id`, `name`, `website`, `type`, `ownerid`," . " (`date` + 0) AS date, `comment`, `email`, `inmoderation`, `ip` " . " FROM " . prefix('comments') . " WHERE ";
                $sql .= " (`type`='albums' AND (";
                $i = 0;
                foreach ($albumIDs as $ID) {
                    if ($i > 0) {
                        $sql .= " OR ";
                    }
                    $sql .= "(" . prefix('comments') . ".ownerid={$ID})";
                    $i++;
                }
                $sql .= ")) ";
                $sql .= " ORDER BY id DESC{$limit}";
                $albumcomments = query_full_array($sql);
                foreach ($albumcomments as $comment) {
                    $comments[$comment['id']] = $comment;
                }
                $sql = "SELECT ." . prefix('comments') . ".id as id, " . prefix('comments') . ".name as name, `website`, `type`, `ownerid`," . " (" . prefix('comments') . ".date + 0) AS date, `comment`, `email`, `inmoderation`, `ip`, " . prefix('images') . ".`albumid` as albumid" . " FROM " . prefix('comments') . "," . prefix('images') . " WHERE ";
                $sql .= "(`type` IN (" . zp_image_types("'") . ") AND (";
                $i = 0;
                foreach ($albumIDs as $ID) {
                    if ($i > 0) {
                        $sql .= " OR ";
                    }
                    $sql .= "(" . prefix('comments') . ".ownerid=" . prefix('images') . ".id AND " . prefix('images') . ".albumid={$ID})";
                    $i++;
                }
                $sql .= "))";
                $sql .= " ORDER BY id DESC{$limit}";
                $imagecomments = query_full_array($sql);
                foreach ($imagecomments as $comment) {
                    $comments[$comment['id']] = $comment;
                }
                krsort($comments);
                if ($number) {
                    if ($number < count($comments)) {
                        $comments = array_slice($comments, 0, $number);
                    }
                }
            }
        }
    }
    return $comments;
}