getByDirname('xcgal'); $config_handler =& xoops_gethandler('config'); $xcgalConfig =& $config_handler->getConfigsByCat(0, $xcgalModule->mid()); $block = array(); if (count($pic_datas) > 0) { foreach ($pic_datas as $key => $row) { $i++; //$image_size = compute_img_size($row['pwidth'], $row['pheight'], $xoopsModuleConfig['thumb_width']); $thumb_list[$i]['pos'] = $key < 0 ? $key : $i - 1 - $options[5]; $thumb_list[$i]['image'] = "\"{$row['filename']}\""; $thumb_list[$i]['caption'] = $row['caption_text']; $thumb_list[$i]['pid'] = $row['pid']; $thumb_list[$i]['link_tgt']="displayimage.php?pid={$row['pid']}&album={$album}&pos={$key}&cat="; $thumb_list[$i]['i']= $i; } //$xoopsTpl->assign('no_img',0); //theme_display_thumbnails($thumb_list, $thumb_count, $album_name, $album, $cat, $page, $total_pages, is_numeric($album), $display_tabs); $block['pics'] = $thumb_list; $block['position'] = $options[2]; $block['wh'] = $options[3]; } return $block; } function xcgal_block_edit($options) { $form = ""; $form.= _MB_XCGAL_TYPE." "; if (intval($options[0]) == 1) { $form.= ""; $form.= "
"._MB_XCGAL_WIDTH." "; } else{ $form.= "
"._MB_XCGAL_DISPLAY." "; } $form .= "
"._MB_XCGAL_CAPTION." "; return $form; } function xcgal_catmenu_block_func(){ global $CAT_LIST_BLOCK; get_subcat_data_block(0,'   '); $block = array(); $module_handler= & xoops_gethandler('module'); $xcgalModule = $module_handler->getByDirname('xcgal'); $block['xcgal'] = $xcgalModule->getVar('name'); $block['cat_list'] = $CAT_LIST_BLOCK; return $block; } function xcgal_block_meta_func($options){ $elements = preg_split("|/|", $options[0], -1, PREG_SPLIT_NO_EMPTY); $display= array(); $display[0]= 0; $display[2]= 0; $display[3]= 0; $display[5]= $options[1]; $display[4]= $options[2]; $block = array(); $block['count']= $options[1]; $column_width = ceil(100/$options[1]); $block['width']= $column_width; foreach ($elements as $element){ if (preg_match("/(\w+),*(\d+)*/", $element, $matches)){ switch($matches[1]){ case 'random': $display[1]= 1; $block['metas'][$element]['title'] = _MB_XCGAL_RANDOM; break; case 'lastup': $display[1]= 2; $block['metas'][$element]['title'] = _MB_XCGAL_NEWST; break; case 'topn': $display[1]= 3; $block['metas'][$element]['title'] = _MB_XCGAL_VIEW; break; case 'toprated': $display[1]= 4; $block['metas'][$element]['title'] = _MB_XCGAL_TOP; break; case 'lastcom': $display[1]= 5; $block['metas'][$element]['title'] = _MB_XCGAL_COMMENTS; break; case 'mostsend': $display[1]= 6; $block['metas'][$element]['title'] = _MB_XCGAL_MOSTSENT; break; case 'lasthits': $display[1]= 7; $block['metas'][$element]['title'] = _MB_XCGAL_LASTHITS; break; } $display[5]= $options[1] * max(1,$matches[2]); $pics = xcgal_block_func($display); $block['metas'][$element]['pics']= $pics['pics']; $count = count($pics['pics']); if (count($pics['pics'])< $display[5] && $count % $options[1] != 0) { $block['metas'][$element]['empty']= 1; while ($count++ % $options[1] != 0) { $block['metas'][$element]['empties'][]= ""; } } else $block['metas'][$element]['empty']= 0; } } return $block; } function xcgal_block_meta_edit($options){ $form = _MB_XCGAL_METAALBS.""; $form.= "
"._MB_XCGAL_PICSPERROW.""; $form.= "
"._MB_XCGAL_CAPTION." prefix("xcgal_categories")." ". "WHERE parent = '$parent' ". "ORDER BY pos"; $result = $xoopsDB->query($sql); if (($cat_count = $xoopsDB->getRowsNum($result)) > 0){ $rowset = fetch_rowset_block($result); $pos=0; foreach ($rowset as $subcat){ if($pos>0){ $CAT_LIST_BLOCK[]=array( 'cid' => $subcat['cid'], 'parent' => $parent, 'pos' => $pos++, 'prev' => $prev_cid, 'cat_count' => $cat_count, 'name' => $ident.$myts->makeTboxData4Show($subcat['name'])); $CAT_LIST_BLOCK[$last_index]['next'] = $subcat['cid']; } else { $CAT_LIST_BLOCK[]=array( 'cid' => $subcat['cid'], 'parent' => $parent, 'pos' => $pos++, 'cat_count' => $cat_count, 'name' => $ident.$myts->makeTboxData4Show($subcat['name'])); } $prev_cid = $subcat['cid']; $last_index = count($CAT_LIST_BLOCK) -1; get_subcat_data_block($subcat['cid'], $ident.'   '); } } } function pic_data_block($album, $count, $set_caption) { global $ALBUM_SET_BLOCK, $GLOBALS; global $xoopsDB, $xcgalModule; $select_columns = 'pid, filepath, filename, url_prefix, filesize, pwidth, pheight, ctime'; // Meta albums switch($album){ case '5': // Last comments $select_columns = $select_columns.', com_id, com_uid,com_itemid,com_rootid, com_exparams, com_created, com_title'; $member_handler =& xoops_gethandler('member'); $module_handler= & xoops_gethandler('module'); $xcgalModule = $module_handler->getByDirname('xcgal'); include_once XOOPS_ROOT_PATH."/include/comment_constants.php"; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xoopscomments").", ".$xoopsDB->prefix("xcgal_pictures")." WHERE com_modid = ".$xcgalModule->mid()." AND approved = 'YES' AND pid = com_itemid AND com_status=".XOOPS_COMMENT_ACTIVE." $ALBUM_SET_BLOCK ORDER by com_id DESC LIMIT $count"); $rowset = fetch_rowset_block($result); $xoopsDB->freeRecordSet($result); $comment_config = $xcgalModule->getInfo('comments'); if ($set_caption) foreach ($rowset as $key => $row){ if ($row['com_uid'] > 0){ $poster =& $member_handler->getUser($row['com_uid']); if (is_object($poster)) { $posters = ''.$poster->getVar('uname').''; } else { $posters = $GLOBALS['xoopsConfig']['anonymous']; }} else $posters = $GLOBALS['xoopsConfig']['anonymous']; $comtitle=''.$row['com_title'].''; $caption = "".$posters.''."".formatTimestamp($row['com_created'],'m').''."".$comtitle.''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case '2': // Last uploads $select_columns .= ', owner_id'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET_BLOCK ORDER BY pid DESC LIMIT $count"); $rowset = fetch_rowset_block($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $user_handler =& xoops_gethandler('member'); $pic_owner =& $user_handler->getUser($row['owner_id']); if (is_object ($pic_owner)){ $user_link = '
'.$pic_owner->uname().''; } else { $user_link = ''; } $caption = "".formatTimestamp($row['ctime'],'m').$user_link.''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case '3': // Most viewed pictures $select_columns .= ', hits'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES'AND hits > 0 $ALBUM_SET_BLOCK ORDER BY hits DESC LIMIT $count"); $rowset = fetch_rowset_block($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $caption = "".sprintf(_MB_FUNC_VIEW, $row['hits']).''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case '4': // Top rated pictures $select_columns .= ', pic_rating, votes'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND votes > 0 $ALBUM_SET_BLOCK ORDER BY ROUND((pic_rating+1)/2000) DESC, votes DESC LIMIT $count"); $rowset = fetch_rowset_block($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $caption = "".''.'
'.sprintf(_MB_FUNC_VOTE, $row['votes']).'
'; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case '1': // Random pictures $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET_BLOCK"); $nbEnr = $xoopsDB->fetchArray($result); $pic_count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); // if we have more than 1000 pictures, we limit the number of picture returned // by the SELECT statement as ORDER BY RAND() is time consuming if ($pic_count > 1000) { $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES'"); $nbEnr = $xoopsDB->fetchArray($result); $total_count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); $granularity = floor($total_count / RANDPOS_MAX_PIC_BLOCK); $cor_gran = ceil($total_count / $pic_count); srand(time()); for ($i=1; $i<= $cor_gran; $i++) $random_num_set =rand(0, $granularity).', '; $random_num_set = substr($random_num_set,0, -2); $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE randpos IN ($random_num_set) AND approved = 'YES' $ALBUM_SET_BLOCK ORDER BY RAND() LIMIT $count"); } else { $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET_BLOCK ORDER BY RAND() LIMIT $count"); } $rowset = array(); while($row = $xoopsDB->fetchArray($result)){ $row['caption_text'] = ''; $rowset[-$row['pid']] = $row; } $xoopsDB->freeRecordSet($result); return $rowset; break; case '6': // Top sent ecards $select_columns .= ', sent_card'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND sent_card >0 $ALBUM_SET_BLOCK ORDER BY sent_card DESC LIMIT $count"); $rowset = fetch_rowset_block($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $caption = "".sprintf(_MB_FUNC_CARD, $row['sent_card']).''; $rowset[$key]['caption_text'] = $caption; } return $rowset; case '7': // Last hits $select_columns .= ', mtime'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET_BLOCK ORDER BY mtime DESC LIMIT $count"); $rowset = fetch_rowset_block($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $caption = "".formatTimestamp($row['mtime'],'m').''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; } } function fetch_rowset_block($result) { global $xoopsDB; $rowset = array(); while ($row = $xoopsDB->fetchArray($result)) $rowset[] = $row; return $rowset; } function block_album_set() { global $ALBUM_SET_BLOCK, $xoopsDB,$xoopsUser; if (is_object ($xoopsUser)){ $usergroups= $xoopsUser->getgroups(); $usergroup= implode(",",$usergroups); $buid= $xoopsUser->uid(); } else { $usergroup= XOOPS_GROUP_ANONYMOUS; $buid = 0; } $module_handler= & xoops_gethandler('module'); $xcgalModule = $module_handler->getByDirname('xcgal'); if(is_object($xoopsUser) && ($xoopsUser->isAdmin($xcgalModule->mid()))) $ALBUM_SET_BLOCK= ""; else { $result = $xoopsDB->query("SELECT aid FROM ".$xoopsDB->prefix("xcgal_albums")." WHERE visibility NOT IN ($usergroup, 0,".(BLOCK_FIRST_USER_CAT + $buid).")"); if (($xoopsDB->getRowsNum($result))) { $set =''; while($album=$xoopsDB->fetchArray($result)){ $set .= $album['aid'].','; } // while $ALBUM_SET_BLOCK .= 'AND aid NOT IN ('.substr($set, 0, -1).') '; } $xoopsDB->freeRecordSet($result); } } ?>