|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Przesunięty przez: Matteo 09-11-2013, 09:29 |
ostatnie fotki z prywatnych galerii na stronie g?ównej |
Autor |
Wiadomość |
chaos
Posty: 18
|
Wysłany: 27-08-2006, 02:27 ostatnie fotki z prywatnych galerii na stronie głównej
|
|
|
Witam
Nareszcie rozwiązałem ten problem.
Przedstawiam rozwiązanie.
W pliku album_portal.php znajdujemy:
Kod: | $sql = "SELECT p.pic_id, pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments
FROM " . ALBUM_TABLE . " AS p
LEFT JOIN " . USERS_TABLE . " AS u ON (p.pic_user_id = u.user_id)
LEFT JOIN " . ALBUM_CAT_TABLE . " AS ct ON (p.pic_cat_id = ct.cat_id)
LEFT JOIN " . ALBUM_RATE_TABLE . " AS r ON (p.pic_id = r.rate_pic_id)
LEFT JOIN " . ALBUM_COMMENT_TABLE . " AS c ON (p.pic_id = c.comment_pic_id)
WHERE p.pic_cat_id IN ($allowed_cat) AND p.pic_approval = 1 OR ct.cat_approval = 0
GROUP BY p.pic_id
ORDER BY pic_time DESC |
Zamieniamy to na:
Kod: | $sql = "SELECT p.pic_id, p.pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, MAX(c.comment_id) as new_comment
FROM " . ALBUM_TABLE . " AS p
LEFT JOIN " . USERS_TABLE . " AS u ON (p.pic_user_id = u.user_id)
LEFT JOIN " . ALBUM_CAT_TABLE . " AS ct ON (p.pic_cat_id = ct.cat_id)
LEFT JOIN " . ALBUM_RATE_TABLE . " AS r ON (p.pic_id = r.rate_pic_id)
LEFT JOIN " . ALBUM_COMMENT_TABLE . " AS c ON (p.pic_id = c.comment_pic_id)
WHERE p.pic_cat_id = 0
GROUP BY p.pic_id
ORDER BY pic_time DESC |
U mnie jak narazie wszystko działa ok.
Pozdrawiam |
Ostatnio zmieniony przez Boltex 20-08-2010, 21:02, w całości zmieniany 1 raz |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
Ferguss
Posty: 17
|
Wysłany: 29-08-2006, 19:08
|
|
|
Yeah - rzeczywiście działa.
Wielkie dzięki chaos. |
|
|
|
|
chaos
Posty: 18
|
Wysłany: 29-08-2006, 21:33
|
|
|
jedyny problem jaki zauważyłem to to że musi być przynajmniej jeden album w kategori publicznej. Może być pusty, inaczej nie wyświetla, nie wiem jak to porawić. Teraz męczę się z umieszczeniem fotek nad newsami w dwóch rzędach a nie po prawej lub lewej stronie portalu. Będzie ciężko nie wiem czy sobie poradzę. Może ktoś ma jakiś pomysł. |
|
|
|
|
kidzior
Pomógł: 1 raz Posty: 31
|
Wysłany: 03-09-2006, 17:29
|
|
|
Da radę to jakos przenieść na Forum, np. pod blok Reklama? |
_________________ IF ('NIE DZIALA')
THEN LOOP
UNTIL ('DZIALA') |
|
|
|
|
kkr
Posty: 38
|
Wysłany: 08-09-2006, 11:39
|
|
|
Z tym jest pewnien problem jeśli chce się wyświetlać jednocześnie prywatne i publiczne galerie. Ja bym to zrobił tak:
Kod: | $sql = "SELECT p.pic_id, pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments
FROM " . ALBUM_TABLE . " AS p
LEFT JOIN " . USERS_TABLE . " AS u ON (p.pic_user_id = u.user_id)
LEFT JOIN " . ALBUM_CAT_TABLE . " AS ct ON (p.pic_cat_id = ct.cat_id)
LEFT JOIN " . ALBUM_RATE_TABLE . " AS r ON (p.pic_id = r.rate_pic_id)
LEFT JOIN " . ALBUM_COMMENT_TABLE . " AS c ON (p.pic_id = c.comment_pic_id)
WHERE p.pic_cat_id = 0 OR p.pic_cat_id IN ($allowed_cat) AND p.pic_approval = 1 OR ct.cat_approval = 0
GROUP BY p.pic_id
ORDER BY pic_time DESC |
|
|
|
|
|
Ferguss
Posty: 17
|
Wysłany: 08-09-2006, 15:00
|
|
|
kkr napisał/a: | Z tym jest pewnien problem jeśli chce się wyświetlać jednocześnie prywatne i publiczne galerie. Ja bym to zrobił tak:
Kod: | $sql = "SELECT p.pic_id, pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments
FROM " . ALBUM_TABLE . " AS p
LEFT JOIN " . USERS_TABLE . " AS u ON (p.pic_user_id = u.user_id)
LEFT JOIN " . ALBUM_CAT_TABLE . " AS ct ON (p.pic_cat_id = ct.cat_id)
LEFT JOIN " . ALBUM_RATE_TABLE . " AS r ON (p.pic_id = r.rate_pic_id)
LEFT JOIN " . ALBUM_COMMENT_TABLE . " AS c ON (p.pic_id = c.comment_pic_id)
WHERE p.pic_cat_id = 0 OR p.pic_cat_id IN ($allowed_cat) AND p.pic_approval = 1 OR ct.cat_approval = 0
GROUP BY p.pic_id
ORDER BY pic_time DESC |
|
Zgadza się, poprzednia modyfikacja nie umożliwiała pokazywanie fotek z galerii publicznych. Po Twojej jest wszystko .
Pozdrawiam |
|
|
|
|
theqkash
Pomógł: 1 raz Posty: 68
|
Wysłany: 10-09-2006, 10:21
|
|
|
Ponawiam pytanie kolegi: Czy da się jakoś umieścić to w bloku reklama zamiast w portalu? |
|
|
|
|
niach
Posty: 8
|
Wysłany: 17-02-2007, 23:39
|
|
|
Czy fotki z galeri prywatnych bedą wyswietlane w postaci miniaturek w tym module ostatnio dodanych fotografy gdy zalozymy ze prywatne galerie widoczne sa jedynie dla zarejestrowanych uzytkownikow?
Czy mozna uzyskac efekt ze beda przykladowo wyswietlane 3 ostatnio dodane fotografie na stronie glownej w postaci miniaturek a gdy ktos kliknie w dana miniaturke wyskoczy informacja o potrzebie logowania? |
|
|
|
|
pablo1234
Posty: 72
|
Wysłany: 16-03-2008, 14:22
|
|
|
chaos napisał/a: | jedyny problem jaki zauważyłem to to że musi być przynajmniej jeden album w kategori publicznej. Może być pusty, inaczej nie wyświetla, nie wiem jak to porawić. Teraz męczę się z umieszczeniem fotek nad newsami w dwóch rzędach a nie po prawej lub lewej stronie portalu. Będzie ciężko nie wiem czy sobie poradzę. Może ktoś ma jakiś pomysł. |
masz rozwiązanie
Kod: | #
#-----[ OPEN ]--------------------------------------------------------
#
portal.php
#
#-----[ FIND ]--------------------------------------------------------
#
// Generate the page
#
#-----[ BEFORE, ADD ]--------------------------------------------------
#
// MOD Album in Portal by Matrix - BEGIN
$album_root_path = $phpbb_root_path . 'album_mod/';
include($album_root_path . 'album_common.'.$phpEx);
$sql = "SELECT c.*, COUNT(p.pic_id) AS count
FROM ". ALBUM_CAT_TABLE ." AS c
LEFT JOIN ". ALBUM_TABLE ." AS p ON c.cat_id = p.pic_cat_id
WHERE cat_id <> 0
GROUP BY cat_id
ORDER BY cat_order ASC";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
}
$catrows = array();
while( $row = $db->sql_fetchrow($result) )
{
$catrows[] = $row;
}
$allowed_cat = '';
for ($i = 0; $i < count($catrows); $i++)
{
$allowed_cat .= ($allowed_cat == '') ? $catrows[$i]['cat_id'] : ',' . $catrows[$i]['cat_id'];
}
if ($allowed_cat != '')
{
$sql = "SELECT p.pic_id, p.pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, u.user_id, u.username, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, MAX(c.comment_id) as new_comment
FROM " . ALBUM_TABLE . " AS p
LEFT JOIN " . USERS_TABLE . " AS u ON (p.pic_user_id = u.user_id)
LEFT JOIN " . ALBUM_CAT_TABLE . " AS ct ON (p.pic_cat_id = ct.cat_id)
LEFT JOIN " . ALBUM_RATE_TABLE . " AS r ON (p.pic_id = r.rate_pic_id)
LEFT JOIN " . ALBUM_COMMENT_TABLE . " AS c ON (p.pic_id = c.comment_pic_id)
WHERE p.pic_cat_id = 0
GROUP BY p.pic_id
ORDER BY pic_time DESC
LIMIT ". $album_config['cols_per_page'];
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query recent pics information', '', __LINE__, __FILE__, $sql);
}
$recentrow = array();
while( $row = $db->sql_fetchrow($result) )
{
$recentrow[] = $row;
}
if (count($recentrow) > 0)
{
for ($i = 0; $i < count($recentrow); $i += $album_config['cols_per_page'])
{
$template->assign_block_vars('recent_pics', array());
for ($j = $i; $j < ($i + $album_config['cols_per_page']); $j++)
{
if( $j >= count($recentrow) )
{
break;
}
if(!$recentrow[$j]['rating'])
{
$recentrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$recentrow[$j]['rating'] = round($recentrow[$j]['rating'], 2);
}
$pic_size = @getimagesize(ALBUM_UPLOAD_PATH . $recentrow[$j]['pic_filename']);
$pic_width = ($pic_size[0] + 20);
$pic_height = ($pic_size[1] + 25);
if ( $album_config['fullpic_popup'] )
{
$u_pic = append_sid("album_pic.$phpEx?pic_id=". $recentrow[$j]['pic_id']);
if ( $pic_size ) $u_pic = "javascript:displayWindow('$u_pic',$pic_width,$pic_height)";
else if ($album_config['fullpic_popup']) $target_blank = 'target="_blank"';
}
else $u_pic = append_sid("album_page.$phpEx?pic_id=". $recentrow[$j]['pic_id']);
$template->assign_block_vars('recent_pics.recent_col', array(
'U_PIC' => $u_pic,
'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $recentrow[$j]['pic_id']),
'DESC' => $recentrow[$j]['pic_desc']
)
);
if( ($recentrow[$j]['user_id'] == ALBUM_GUEST) or ($recentrow[$j]['username'] == '') )
{
$recent_poster = ($recentrow[$j]['pic_username'] == '') ? $lang['Guest'] : $recentrow[$j]['pic_username'];
}
else
{
$recent_poster = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $recentrow[$j]['user_id']) .'">'. $recentrow[$j]['username'] .'</a>';
}
$template->assign_block_vars('recent_pics.recent_detail', array(
'TITLE' => $recentrow[$j]['pic_title'],
'POSTER' => $recent_poster,
'TIME' => create_date($board_config['default_dateformat'], $recentrow[$j]['pic_time'], $board_config['board_timezone']),
'VIEW' => $recentrow[$j]['pic_view_count'],
'RATING' => ($album_config['rate'] == 1) ? ( '<a href="'. append_sid("album_rate.$phpEx?pic_id=". $recentrow[$j]['pic_id']) . '">' . $lang['Rating'] . '</a>: ' . $recentrow[$j]['rating'] . '<br />') : '',
'COMMENTS' => ($album_config['comment'] == 1) ? ( '<a href="'. append_sid("album_comment.$phpEx?pic_id=". $recentrow[$j]['pic_id']) . '">' . $lang['Comments'] . '</a>: ' . $recentrow[$j]['comments'] . '<br />') : '',
'IP' => ($userdata['user_level'] == ADMIN) ? '' . $lang['IP_Address'] . ': <a href="' . $board_config['address_whois'] . '' . decode_ip($recentrow[$j]['pic_user_ip']) . '" target="_blank">' . decode_ip($recentrow[$j]['pic_user_ip']) .'</a><br />' : ''
)
);
}
}
}
else
{
// No Pics Found
$template->assign_block_vars('no_pics', array());
}
}
else
{
// No Cats Found
$template->assign_block_vars('no_pics', array());
}
$template->assign_vars(array(
'L_CATEGORY' => $lang['Category'],
'L_PICS' => $lang['Pics'],
'L_LAST_PIC' => $lang['Last_Pic'],
'U_YOUR_PERSONAL_GALLERY' => append_sid("album_personal.$phpEx?user_id=". $userdata['user_id']),
'L_YOUR_PERSONAL_GALLERY' => $lang['Your_Personal_Gallery'],
'U_USERS_PERSONAL_GALLERIES' => append_sid("album_personal_index.$phpEx"),
'L_USERS_PERSONAL_GALLERIES' => $lang['Users_Personal_Galleries'],
'S_COLS' => $album_config['cols_per_page'],
'S_COL_WIDTH' => (100/$album_config['cols_per_page']) . '%',
'TARGET_BLANK' => $target_blank,
'L_RECENT_PUBLIC_PICS' => $lang['Recent_Public_Pics'],
'L_NO_PICS' => $lang['No_Pics'],
'L_PIC_TITLE' => $lang['Pic_Title'],
'L_VIEW' => $lang['View'],
'L_POSTER' => $lang['Poster'],
'L_POSTED' => $lang['Posted'],
'L_PUBLIC_CATS' => $lang['Public_Categories'])
);
// MOD Album in Portal by Matrix - END
#
#-----[ OPEN ]--------------------------------------------------------
#
/templates/xxx/portal_body.tpl (gdzie xxx to nazwa stylu)
#
#-----[ FIND ]--------------------------------------------------------
#
{module12}
</td>
</tr>
</table>
</td>
{END_LEFT_PANEL_OFF}
<td valign="top">
#
#-----[ AFTER, ADD ]--------------------------------------------------
#
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<tr>
<td height="25" width="100%" class="catHead" align="center" colspan="{S_COLS}" nowrap="nowrap"><span class="genmed"><b>{L_RECENT_PUBLIC_PICS}</b></span></td>
</tr>
<!-- BEGIN no_pics -->
<tr>
<td class="row1" align="center" colspan="{S_COLS}" height="50"><span class="gen">{L_NO_PICS}</span></td>
</tr>
<!-- END no_pics -->
<!-- BEGIN recent_pics -->
<tr>
<!-- BEGIN recent_col -->
<td class="row1" width="{S_COL_WIDTH}" align="center"><a href="{recent_pics.recent_col.U_PIC}" {TARGET_BLANK}><img src="{recent_pics.recent_col.THUMBNAIL}" border="0" alt="{recent_pics.recent_col.DESC}" title="{recent_pics.recent_col.DESC}" vspace="10" /></a></td>
<!-- END recent_col -->
</tr>
<tr>
<!-- BEGIN recent_detail -->
<td class="row2"><span class="gensmall">{L_PIC_TITLE}: {recent_pics.recent_detail.TITLE}<br />
{L_POSTER}: {recent_pics.recent_detail.POSTER}<br />{L_POSTED}: {recent_pics.recent_detail.TIME}<br />
{L_VIEW}: {recent_pics.recent_detail.VIEW}<br />{recent_pics.recent_detail.RATING}{recent_pics.recent_detail.COMMENTS}{recent_pics.recent_detail.IP}</span></td>
<!-- END recent_detail -->
</tr>
<!-- END recent_pics -->
</table>
<br />
#
#-----[ DIY INSTRUCTIONS ]------------------------------------------
#
Obowiązkowo ustaw:
- w PA -> Ogólne -> Ustawienia portalu -> Rozmieszczenie modułów -> "Ostatnie zdjęcia" (z nr modułu 16 chyba) -> daj na "pusty" (wyłączyć)
#
#-----[ SAVE/CLOSE ALL FILES ]----------------------------------------
#
# EoM |
|
|
|
|
|
Morfeusz_2005
Pomógł: 2 razy Posty: 227
|
Wysłany: 08-11-2008, 16:21
|
|
|
Mam pytanie. Czy ten skrypt umożliwia pokazywanie na stronie głownej Albumu ostatnie zdjęcia z Pod Kategorii? Bo niestety pokazuje tylko z albumów bezpośrednich ostatnie zdjęcia. |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
slajt0
Posty: 1
|
Wysłany: 14-04-2009, 21:20
|
|
|
Mógłby ktoś, kto się na tym zna, przejrzeć ten temat na nowo? Bo po spróbowaniu wszystkich propozycji umieszczonych w tym temacie, stwierdzam, że żadna z nich nie działa. W galerii pokazywane są u mnie nadal "Ostatnie zdjęcia" ale tylko z galerii publicznych, a chcę aby były tam ostatnio dodane zdjęcia i z galerii publicznych, jak i z prywatnych.
Z góry dziękuję, pozdrawiam. |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,09 sekundy. Zapytań do SQL: 14 | |
|
|