Сложный (для меня) вопрос по nextgen gallery

Привет. У мня на сайте obzorvsego.ru утановлен nextgen gallery. Егойный виджет достойно выводит картинки на рендоме, но ссылка сних ведет на саму картинку, а мне надо бы, чтобы на статью. Я специально для этого стал называть директории с галлеерями также, как папка со статьями.
пример:
http://www.obzorvsego.ru/2007/12/09/zhivoj/
http://www.obzorvsego.ru/wp-content/gallery/zhivoj/Untitled-1.jpg

Как из всего этого сделать для виджета генерацию урла статьи для рендомных картинок в виджете?

только править сорс плагина (опциональное знание php обязательно)

У меня книжка есть по пхп 🙂
Известно ли, хранит ли НГГ гделибо информацию о привязке галлереи к статье или нет? Возможно ее можно получить из бд малой кровью? Если хранит, то я бы попытался, если нет, то буду писать автору плагина о необходимости внедрить такую опцию 🙂

Достиг.
http://www.obzorvsego.ru
Храню урл страницы в поле "описание" галлереи. соответвенно одна галлерея – один пост. Все изменения только для рендомного вывода в виджете.
делал сам в кривь да в кось, но работает. Можете сравнить изменение (2-3 строчки) с оригинальным кодом.
теоретически лучше было бы сделат проверку на то являеися ли содержимое "описания" урлом и в зависимости от результатов проверки выводить ссылку на статью или на большое изображение.

nggwidget.php :
/*******************************************************/
/* DISPLAY FUNCTION TO THE RECENT & RANDOM IMAGES
/*******************************************************/
function nggDisplayImagesWidget($thumb,$number,$sizeX,$sizeY,$mode,$imgtype) {

// Check for NextGEN Gallery
if ( !class_exists(‘nggallery’) )
return;

global $wpdb;

//get ngg options
$ngg_options = get_option(‘ngg_options’);

// get the effect code
$thumbcode = nggallery::get_thumbcode("sidebar_".$imgtype);

$count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures WHERE exclude != 1 ");
if ($count < $number)
$number = $count;

if ($imgtype == "random")
{
$imageList = $wpdb->get_results("SELECT * FROM $wpdb->nggpictures WHERE exclude != 1 ORDER by rand() limit $number");
//Убрать
//echo "данные картинки";
//print_r ($imageList);
//echo "данные $wpdb";
//print_r ($wpdb);
}
else
$imageList = $wpdb->get_results("SELECT * FROM $wpdb->nggpictures WHERE exclude != 1 ORDER by pid DESC limit 0,$number");

if (is_array($imageList)){
foreach($imageList as $image) {

//TODO:Insert title
//Получение поля тайтл из галлереи по принадлежности картинки к галлерее
$getgallerytitle = $wpdb->get_var("SELECT galdesc FROM $wpdb->nggallery WHERE gid = ‘$image->galleryid’ ");
$out = ‘<a href="’.$getgallerytitle.’" title="’.stripslashes($image->description).’">’;
//$out = ‘<a href="’.nggallery::get_image_url($image->pid).’" title="’.stripslashes($image->description).’" ‘.$thumbcode.’>’;
$addmode = ($mode == ‘web20’) ? "&amp;mode=web20" : "" ;
if ( $thumb == "false" )
$out .= ‘<img src="’.NGGALLERY_URLPATH.’nggshow.php?pid=’.$image->pid.’&amp;width=’.$sizeX.’&amp;height=’.$sizeY.$addmode.’" title="’.$image->alttext.’" alt="’.$image->alttext.’" />’;
else
$out .= ‘<img src="’.nggallery::get_thumbnail_url($image->pid).’" style="width:’.$sizeX.’px;height:’.$sizeY.’px;" title="’.$image->alttext.’" alt="’.$image->alttext.’" />’;

echo $out . ‘</a>’."\n";

}
}
}

Anonymous
Отправить
Ответ на: