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;
}
?>