add('type', 'boolean'); $propbag->add('name', PLUGIN_CPGS_THUMB_NAME); $propbag->add('description', PLUGIN_CPGS_THUMB_DESC); $propbag->add('default', 'true'); break; case 'cm_type': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_CPGS_TYPE_NAME); $propbag->add('description', PLUGIN_CPGS_TYPE_DESC); $propbag->add('radio', array( 'value' => array('recent', 'random', 'popular'), 'desc' => array(PLUGIN_CPGS_RECENT, PLUGIN_CPGS_RANDOM, PLUGIN_CPGS_POPULAR) )); $propbag->add('default', 'recent'); break; case 'cm_plugin_title': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_TITLE_NAME); $propbag->add('description', PLUGIN_CPGS_TITLE_DESC); $propbag->add('default', 'My Images'); break; case 'cm_server': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_SERVER_NAME); $propbag->add('description', PLUGIN_CPGS_SERVER_DESC); $propbag->add('default', 'localhost'); break; case 'cm_db': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_DB_NAME); $propbag->add('description', PLUGIN_CPGS_DB_DESC); $propbag->add('default', 'coppermine'); break; case 'cm_prefix': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_PREFIX_NAME); $propbag->add('description', PLUGIN_CPGS_PREFIX_DESC); $propbag->add('default', 'cpg132_'); break; case 'cm_user': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_USER_NAME); $propbag->add('description', PLUGIN_CPGS_USER_DESC); $propbag->add('default', 'username'); break; case 'cm_pass': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_PASSWORD_NAME); $propbag->add('description', PLUGIN_CPGS_PASSWORD_DESC); $propbag->add('default', 'password'); break; case 'cm_group': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_GROUP_NAME); $propbag->add('description', PLUGIN_CPGS_GROUP_DESC); $propbag->add('default', 'Everybody'); break; case 'cm_path': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_URL_NAME); $propbag->add('description', PLUGIN_CPGS_URL_DESC); $propbag->add('default', 'http://gallery.com'); break; case 'cm_gallerypath': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_GALLLINK_NAME); $propbag->add('description', PLUGIN_CPGS_GALLLINK_DESC); $propbag->add('default', 'http://gallery.com'); break; case 'cm_title': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_GALLNAME_NAME); $propbag->add('description', PLUGIN_CPGS_GALLNAME_DESC); $propbag->add('default', 'More images...'); break; case 'cm_count': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_COUNT_NAME); $propbag->add('description', PLUGIN_CPGS_COUNT_DESC); $propbag->add('default', '4'); break; case 'cm_size': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_SIZE_NAME); $propbag->add('description', PLUGIN_CPGS_SIZE_DESC); $propbag->add('default', '100'); break; case 'cm_album': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_CPGS_FILTER_NAME); $propbag->add('description', PLUGIN_CPGS_FILTER_DESC); $propbag->add('default', ''); break; case 'cm_albumlink': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_CPGS_ALBUM_NAME); $propbag->add('description', PLUGIN_CPGS_ALBUM_DESC); $propbag->add('default', true); break; default: return false; } return true; } function generate_content_custom(&$title) { $title = $this->get_config('cm_plugin_title'); global $serendipity; $dbserver = $this->get_config('cm_server'); $prefix = $this->get_config('cm_prefix'); $path = $this->get_config('cm_path'); $gallerypath = $this->get_config('cm_gallerypath'); $dbname = $this->get_config('cm_db'); $dbuser = $this->get_config('cm_user'); $dbpass = $this->get_config('cm_pass'); $group = $this->get_config('cm_group'); $size = $this->get_config('cm_size'); $count = $this->get_config('cm_count'); $gallery = $this->get_config('cm_title'); $resolve = $this->get_config('cm_resolve'); $type = $this->get_config('cm_type'); $cm_title = $this->get_config('cm_plugin_title'); $album = $this->get_config('cm_album'); $albumlink = $this->get_config('cm_albumlink'); $filter = ''; if (!empty($album)) { $show = array(); $hide = array(); $ids = preg_split('/[\s,]/', $album, -1, PREG_SPLIT_NO_EMPTY); foreach ($ids as $id) { if (preg_match('/^!/', $id) && is_numeric(substr($id, 1))) { $hide[] = substr($id, 1); } else if (is_numeric($id)) { $show[] = $id; } } if (count($show) || count($hide)) { $filter = ' WHERE aid '; if (count($show)) { $filter .= 'IN ('; $c = 0; foreach ($show as $id) { $filter .= $id; if ($c < count($show) - 1) $filter .= ','; ++$c; } $filter .= ') '; if (count($hide)) $filter .= ' AND aid '; } if (count($hide)) { $filter = 'NOT IN ('; $c = 0; foreach ($hide as $id) { $filter .= $id; if ($c < count($hide)-1) $filter .= ','; ++$c; } $filter .= ') '; } } } switch ($type) { case 'random': $order = 'RAND()'; break; case 'popular': $order = 'hits DESC'; break; case 'recent': default: $order = 'pid DESC'; break; } // if ($cm_title != "") $title = $cm_title; $DB = @mysql_connect($dbserver, $dbuser, $dbpass); if (!$DB) { echo 'Unable to connect to the database server
'; return; } if (! @mysql_select_db($dbname, $DB) ) { echo 'Unable to locate the picture database
'; $this->finished($DB); return; } /* MOJIRO:EDIT [START] */ if ($group == "Everybody" || $group == "") { $groupid = ""; } else { $query = "SELECT `group_id` FROM " . $prefix . "usergroups WHERE `group_name` = '" . $group . "' LIMIT 1"; $result = @mysql_query($query, $DB); if (!$result) { echo 'Error performing query: ' . mysql_error() . '
'; $this->finished($DB); return; } $groupid = "," . mysql_result($result, 0); } $query = "SELECT `aid` FROM " . $prefix . "albums WHERE `visibility` IN (0" . $groupid . ")"; $result = @mysql_query($query, $DB); if (!$result) { echo 'Error performing query: ' . mysql_error() . '
'; $this->finished($DB); return; } $n = mysql_num_rows($result); for ($i = 0; $i < $n; $i++) { $aid .= mysql_result($result, $i) . ","; } $aid = substr($aid, 0, strlen($aid) - 1); if (strlen($filter) == 0) { $filter = "WHERE `aid` IN (" . $aid . ")"; } $query = "SELECT * FROM " . $prefix . "pictures " . $filter . " ORDER BY " . $order . " LIMIT 0," . $count; $result = @mysql_query($query, $DB); if (!$result) { echo 'Error performing query: ' . mysql_error() . '
'; $this->finished($DB); return; } ?>
'; $albumid = $row['aid']; // This gets the picture's associated album name $pos = $row['pid']; // This finds the picture's coppermine location $width = $row['pwidth']; $height = $row['pheight']; if ( !isset($row['pwidth']) || empty($row['pwidth']) || $row['pwidth'] <= 0 || !isset($row['pheight']) || empty($row['pheight']) || $row['pheight'] <= 0 ) { $defimage = '' . '' . 
					$row['filename'] . 
					''; if ($resolve) { if (preg_match("/[^\\.]+$/i", $row['filename'], $matches)) { $ext = strtolower($matches[0]); $guess = $path.'/images/thumb_' . $ext . '.jpg'; $file = @fopen($guess, "r"); if ($file) { fclose($file); echo '' . '' . 
								$row['filename'] . 
								''; } else echo $defimage; } else echo $defimage; } else echo $defimage; } else { $aspect = $width / $height; if ($aspect >= 1) { $width = $size; $height = floor($size / $aspect); $hpad = 0; $vpad = floor(($width - $height) / 2); } else { $width = floor($size * $aspect); $height = $size; $vpad = 0; $hpad = floor(($height - $width) / 2); } echo '' . '' . 
					$row['filename'] . 
					''; } if ($albumlink) { $albumresult = @mysql_query("SELECT * FROM " . $prefix . "albums WHERE aid = '" . $albumid . "'",$DB); if (!$albumresult) { echo 'Error performing query: ' . mysql_error() . '
'; $this->finished($DB); return; } while ($albumname = mysql_fetch_array($albumresult)) { echo '
' . $albumname['title'] . '
'; } } ?>
finished($DB); } function finished(&$db) { global $serendipity; mysql_close($db); $serendipity['dbConn'] = mysql_connect($serendipity['dbHost'], $serendipity['dbUser'], $serendipity['dbPass']); mysql_select_db($serendipity['dbName']); } } ?>