|
|
Публикация и обсуждение идей о расширении функциональности phpBB3
15 апр 2010, 17:20
Можно ли реализовать на форуме голосование без сообщений в теме? То есть, чтобы при создании темы с опросом не нужно было писать еще и сообщение, и чтобы пользователи могли только выбирать вариант ответа.
-

pavelkim
-
- Сообщений: 51
- Зарегистрирован:
19 авг 2009, 17:59 - Откуда:
Беларусь
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
15 апр 2010, 19:31
pavelkim а вроде так и есть 
Мой проект - Urbanwave Сделано на: phpbb 3.0.7,KTVM portal,Memht portal+моды http://urbanwave.info - Онлайн радио,тв, форумные игры. http://globalbeats.ru/ - Все о клубной музыке. Если есть предложения что либо установить-пишите в личку
-

xC4x
- Поддержка
-
- Сообщений: 2354
- Зарегистрирован:
16 мар 2009, 06:11
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
15 апр 2010, 20:05
xC4x, да что вы?.. У меня пока только так получается: А хотелось бы вот так:
-

pavelkim
-
- Сообщений: 51
- Зарегистрирован:
19 авг 2009, 17:59 - Откуда:
Беларусь
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
15 апр 2010, 20:17
pavelkim как сказать , сообщение и голосование технически взаимосвязаны . Думаю в топике не плохо описывать суть голосования и его цели , а также правила 
Мой проект - Urbanwave Сделано на: phpbb 3.0.7,KTVM portal,Memht portal+моды http://urbanwave.info - Онлайн радио,тв, форумные игры. http://globalbeats.ru/ - Все о клубной музыке. Если есть предложения что либо установить-пишите в личку
-

xC4x
- Поддержка
-
- Сообщений: 2354
- Зарегистрирован:
16 мар 2009, 06:11
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
15 апр 2010, 21:14
Ну тут свои нюансы есть, хотелось бы просто собирать информацию из опросов, не тратя время на ответы и не захламляя тему с голосованием. Но чувствую, что без мода здесь не обойтись... А это уже сложно и не оправданно в данном случае.
-

pavelkim
-
- Сообщений: 51
- Зарегистрирован:
19 авг 2009, 17:59 - Откуда:
Беларусь
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
15 апр 2010, 22:24
pavelkimЕсть в Board3portal вывод голосования на главную в блоке , возможно посмотреть код и попробывать добавить его в viewtopic_body.html Хотя возможно путевого не получится 
Мой проект - Urbanwave Сделано на: phpbb 3.0.7,KTVM portal,Memht portal+моды http://urbanwave.info - Онлайн радио,тв, форумные игры. http://globalbeats.ru/ - Все о клубной музыке. Если есть предложения что либо установить-пишите в личку
-

xC4x
- Поддержка
-
- Сообщений: 2354
- Зарегистрирован:
16 мар 2009, 06:11
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
16 апр 2010, 08:32
xC4x Мыслишь верно. Только зачем в viewtopic_body.html ? Там уже есть этот код. Наверно лучше было бы если вынести это всё на отдельную страницу и там будет список опросов.
-

GSC
- Локализатор
-
- Сообщений: 584
- Зарегистрирован:
22 мар 2009, 08:30
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
16 апр 2010, 08:53
Как вариант, можно и viewtopic_body.html подправить, чтобы, если в теме есть голосование, сообщения просто не выводить. Но в этом случае создать опрос с обсуждением уже не получится.
-
Distructor
-
- Сообщений: 47
- Зарегистрирован:
05 мар 2010, 23:37
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
17 апр 2010, 14:01
Тогда немного другой вопрос! Как вывести голосование на сайт, можно ли это сделать вставкой отдельного кода на страницу сайта? И если можно, то каким кодом? Разглядывал код блока голосования на Board3portal - не сообразил, каков должен быть код для вставки 
-

pavelkim
-
- Сообщений: 51
- Зарегистрирован:
19 авг 2009, 17:59 - Откуда:
Беларусь
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
17 апр 2010, 19:43
pavelkimвот код всего файла poll.php - Код: выделить все
<?php /* * * @package - Board3portal * @version $Id: poll.php 523 2009-08-27 21:41:08Z christian_n $ * @copyright (c) kevin / saint ( www.board3.de/ ), (c) Ice, (c) nickvergessen ( www.flying-bits.org/ ), (c) redbull254 ( www.digitalfotografie-foren.de ), (c) Christian_N ( www.phpbb-projekt.de ) * @based on: phpBB3 Portal by Sevdin Filiz, www.phpbb3portal.com * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */
if (!defined('IN_PHPBB') || !defined('IN_PORTAL')) { exit; }
/** * @ignore */
$user->add_lang('viewtopic');
$view = request_var('view', ''); $update = request_var('update', false); $poll_view = request_var('polls', '');
$poll_view_ar = ( strpos(urldecode($poll_view), ',') !== FALSE ) ? explode(',', urldecode($poll_view)) : (($poll_view != '') ? array($poll_view) : array());
if ($update && $portal_config['portal_poll_allow_vote']) { $up_topic_id = request_var('t', 0); $up_forum_id = request_var('f', 0); $voted_id = request_var('vote_id', array('' => 0));
$cur_voted_id = array(); if ($user->data['is_registered']) { $sql = 'SELECT poll_option_id FROM ' . POLL_VOTES_TABLE . ' WHERE topic_id = ' . $up_topic_id . ' AND vote_user_id = ' . $user->data['user_id']; $result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) { $cur_voted_id[] = $row['poll_option_id']; } $db->sql_freeresult($result); } else { // Cookie based guest tracking ... I don't like this but hum ho // it's oft requested. This relies on "nice" users who don't feel // the need to delete cookies to mess with results. if (isset($_COOKIE[$config['cookie_name'] . '_poll_' . $up_topic_id])) { $cur_voted_id = explode(',', request_var($config['cookie_name'] . '_poll_' . $up_topic_id, 0, false, true)); $cur_voted_id = array_map('intval', $cur_voted_id); } }
$sql = 'SELECT t.poll_length, t.poll_start, t.poll_vote_change, t.topic_status, f.forum_status, t.poll_max_options FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . " f WHERE t.forum_id = f.forum_id AND t.topic_id = " . (int) $up_topic_id . " AND t.forum_id = " . (int) $up_forum_id; $result = $db->sql_query_limit($sql, 1); $topic_data = $db->sql_fetchrow($result); $db->sql_freeresult($result);
$s_can_up_vote = (((!sizeof($cur_voted_id) && $auth->acl_get('f_vote', $up_forum_id)) || ($auth->acl_get('f_votechg', $up_forum_id) && $topic_data['poll_vote_change'])) && (($topic_data['poll_length'] != 0 && $topic_data['poll_start'] + $topic_data['poll_length'] > time()) || $topic_data['poll_length'] == 0) && $topic_data['topic_status'] != ITEM_LOCKED && $topic_data['forum_status'] != ITEM_LOCKED) ? true : false;
if( $s_can_up_vote ) { if (!sizeof($voted_id) || sizeof($voted_id) > $topic_data['poll_max_options'] || in_array(VOTE_CONVERTED, $cur_voted_id)) { $redirect_url = append_sid("{$phpbb_root_path}portal.$phpEx");
meta_refresh(5, $redirect_url); if (!sizeof($voted_id)) { $message = 'NO_VOTE_OPTION'; } else if (sizeof($voted_id) > $topic_data['poll_max_options']) { $message = 'TOO_MANY_VOTE_OPTIONS'; } else { $message = 'VOTE_CONVERTED'; }
$message = $user->lang[$message] . '<br /><br />' . sprintf($user->lang['RETURN_PORTAL'], '<a href="' . $redirect_url . '">', '</a>'); trigger_error($message); }
foreach ($voted_id as $option) { if (in_array($option, $cur_voted_id)) { continue; }
$sql = 'UPDATE ' . POLL_OPTIONS_TABLE . ' SET poll_option_total = poll_option_total + 1 WHERE poll_option_id = ' . (int) $option . ' AND topic_id = ' . (int) $up_topic_id; $db->sql_query($sql);
if ($user->data['is_registered']) { $sql_ary = array( 'topic_id' => (int) $up_topic_id, 'poll_option_id' => (int) $option, 'vote_user_id' => (int) $user->data['user_id'], 'vote_user_ip' => (string) $user->ip, );
$sql = 'INSERT INTO ' . POLL_VOTES_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary); $db->sql_query($sql); } }
foreach ($cur_voted_id as $option) { if (!in_array($option, $voted_id)) { $sql = 'UPDATE ' . POLL_OPTIONS_TABLE . ' SET poll_option_total = poll_option_total - 1 WHERE poll_option_id = ' . (int) $option . ' AND topic_id = ' . (int) $up_topic_id; $db->sql_query($sql);
if ($user->data['is_registered']) { $sql = 'DELETE FROM ' . POLL_VOTES_TABLE . ' WHERE topic_id = ' . (int) $up_topic_id . ' AND poll_option_id = ' . (int) $option . ' AND vote_user_id = ' . (int) $user->data['user_id']; $db->sql_query($sql); } } }
if ($user->data['user_id'] == ANONYMOUS && !$user->data['is_bot']) { $user->set_cookie('poll_' . $up_topic_id, implode(',', $voted_id), time() + 31536000); }
$sql = 'UPDATE ' . TOPICS_TABLE . ' SET poll_last_vote = ' . time() . " WHERE topic_id = $up_topic_id"; //, topic_last_post_time = ' . time() . " -- for bumping topics with new votes, ignore for now $db->sql_query($sql);
$redirect_url = append_sid("{$phpbb_root_path}portal.$phpEx");
meta_refresh(5, $redirect_url); trigger_error($user->lang['VOTE_SUBMITTED'] . '<br /><br />' . sprintf($user->lang['RETURN_PORTAL'], '<a href="' . $redirect_url . '">', '</a>')); } }
$where = ''; $poll_forums = false;
if( $portal_config['portal_poll_topic_id'] !== '' ) { $poll_forums_config = explode(',' ,$portal_config['portal_poll_topic_id']); foreach($poll_forums_config as $poll_forum ) { if ( is_numeric(trim($poll_forum)) === TRUE ) { $poll_forum = (int) trim($poll_forum); if( $auth->acl_get('f_read', $poll_forum) ) { $poll_forums = true; $where .= ($where == "") ? "t.forum_id = '{$poll_forum}'" : " OR t.forum_id = '{$poll_forum}'"; } } } } else { $forum_list = $auth->acl_getf('f_read', true);
foreach($forum_list as $pf => $pf_data ) { $pf = (int) trim($pf); $poll_forums = true; $where .= ($where == "") ? "t.forum_id = '{$pf}'" : " OR t.forum_id = '{$pf}'"; } }
$where = ($where !== '') ? "AND ({$where})" : '';
if ($portal_config['portal_poll_hide']) { $portal_poll_hide = "AND (t.poll_start + t.poll_length > ". time() ." OR t.poll_length = 0)"; } else { $portal_poll_hide = ''; }
if ($poll_forums === true) {
$sql = 'SELECT t.poll_title, t.poll_start, t.topic_id, t.topic_first_post_id, t.forum_id, t.poll_length, t.poll_vote_change, t.poll_max_options, t.topic_status, f.forum_status, p.bbcode_bitfield, p.bbcode_uid FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p, ' . FORUMS_TABLE . " f WHERE t.forum_id = f.forum_id AND t.topic_approved = 1 AND t.poll_start > 0 {$where} AND t.topic_moved_id = 0 AND p.post_id = t.topic_first_post_id {$portal_poll_hide} ORDER BY t.poll_start DESC"; $limit = ( isset($portal_config['portal_poll_limit']) ) ? $portal_config['portal_poll_limit'] : 3; $result = $db->sql_query_limit($sql, $limit); $has_poll = false;
if ($result) { while( $data = $db->sql_fetchrow($result) ) { $has_poll = true; $poll_has_options = false;
$topic_id = (int) $data['topic_id']; $forum_id = (int) $data['forum_id'];
$cur_voted_id = array(); if( $portal_config['portal_poll_allow_vote'] ) { if ($user->data['is_registered']) { $vote_sql = 'SELECT poll_option_id FROM ' . POLL_VOTES_TABLE . ' WHERE topic_id = ' . $topic_id . ' AND vote_user_id = ' . $user->data['user_id']; $vote_result = $db->sql_query($vote_sql);
while ($row = $db->sql_fetchrow($vote_result)) { $cur_voted_id[] = $row['poll_option_id']; } $db->sql_freeresult($vote_result); } else { // Cookie based guest tracking ... I don't like this but hum ho // it's oft requested. This relies on "nice" users who don't feel // the need to delete cookies to mess with results. if (isset($_COOKIE[$config['cookie_name'] . '_poll_' . $topic_id])) { $cur_voted_id = explode(',', request_var($config['cookie_name'] . '_poll_' . $topic_id, 0, false, true)); $cur_voted_id = array_map('intval', $cur_voted_id); } }
$s_can_vote = (((!sizeof($cur_voted_id) && $auth->acl_get('f_vote', $forum_id)) || ($auth->acl_get('f_votechg', $forum_id) && $data['poll_vote_change'])) && (($data['poll_length'] != 0 && $data['poll_start'] + $data['poll_length'] > time()) || $data['poll_length'] == 0) && $data['topic_status'] != ITEM_LOCKED && $data['forum_status'] != ITEM_LOCKED) ? true : false; } else { $s_can_vote = false; }
$s_display_results = ( !$s_can_vote || ( $s_can_vote && sizeof($cur_voted_id) ) || ( $view == 'viewpoll' && in_array($topic_id, $poll_view_ar) ) ) ? true : false;
$poll_sql = 'SELECT po.poll_option_id, po.poll_option_text, po.poll_option_total FROM ' . POLL_OPTIONS_TABLE . " po WHERE po.topic_id = {$topic_id} ORDER BY po.poll_option_id";
$poll_result = $db->sql_query($poll_sql); $poll_total_votes = 0; $poll_data = array();
if ($poll_result) { while( $polls_data = $db->sql_fetchrow($poll_result) ) { $poll_has_options = true; $poll_data[] = $polls_data; $poll_total_votes += $polls_data['poll_option_total']; } } $db->sql_freeresult($poll_result);
$make_poll_view = array();
if( in_array($topic_id, $poll_view_ar) === FALSE ) { $make_poll_view[] = $topic_id; $make_poll_view = array_merge($poll_view_ar, $make_poll_view); }
$poll_view_str = urlencode( implode(',', $make_poll_view) ); $portalpoll_url= append_sid("{$phpbb_root_path}portal.$phpEx", "polls=$poll_view_str"); $portalvote_url= append_sid("{$phpbb_root_path}portal.$phpEx", "f=$forum_id&t=$topic_id"); $viewtopic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id"); $poll_end = $data['poll_length'] + $data['poll_start'];
// Parse BBCode title if ($data['bbcode_bitfield']) { $poll_bbcode = new bbcode(); } else { $poll_bbcode = false; }
$data['poll_title'] = censor_text($data['poll_title']);
if ($poll_bbcode !== false) { $poll_bbcode->bbcode_second_pass($data['poll_title'], $data['bbcode_uid'], $data['bbcode_bitfield']); }
$data['poll_title'] = bbcode_nl2br($data['poll_title']); $data['poll_title'] = smiley_text($data['poll_title']); unset($poll_bbcode);
$template->assign_block_vars('poll', array( 'S_POLL_HAS_OPTIONS' => $poll_has_options, 'POLL_QUESTION' => $data['poll_title'], 'U_POLL_TOPIC' => append_sid($phpbb_root_path . 'viewtopic.' . $phpEx . '?t=' . $topic_id . '&f=' . $forum_id), 'POLL_LENGTH' => $data['poll_length'], 'TOPIC_ID' => $topic_id, 'TOTAL_VOTES' => $poll_total_votes, 'L_MAX_VOTES' => ($data['poll_max_options'] == 1) ? $user->lang['MAX_OPTION_SELECT'] : sprintf($user->lang['MAX_OPTIONS_SELECT'], $data['poll_max_options']), 'L_POLL_LENGTH' => ($data['poll_length']) ? sprintf($user->lang[($poll_end > time()) ? 'POLL_RUN_TILL' : 'POLL_ENDED_AT'], $user->format_date($poll_end)) : '', 'S_CAN_VOTE' => $s_can_vote, 'S_DISPLAY_RESULTS' => $s_display_results, 'S_IS_MULTI_CHOICE' => ($data['poll_max_options'] > 1) ? true : false, 'S_POLL_ACTION' => $portalvote_url, 'U_VIEW_RESULTS' => $portalpoll_url . '&view=viewpoll#viewpoll', 'U_VIEW_TOPIC' => $viewtopic_url, ));
foreach($poll_data as $pd) { $option_pct = ($poll_total_votes > 0) ? $pd['poll_option_total'] / $poll_total_votes : 0; $option_pct_txt = sprintf("%.1d%%", ($option_pct * 100));
// Parse BBCode option text if ($data['bbcode_bitfield']) { $poll_bbcode = new bbcode(); } else { $poll_bbcode = false; }
$pd['poll_option_text'] = censor_text($pd['poll_option_text']);
if ($poll_bbcode !== false) { $poll_bbcode->bbcode_second_pass($pd['poll_option_text'], $data['bbcode_uid'], $data['bbcode_bitfield']); }
$pd['poll_option_text'] = bbcode_nl2br($pd['poll_option_text']); $pd['poll_option_text'] = smiley_text($pd['poll_option_text']); unset($poll_bbcode);
$template->assign_block_vars('poll.poll_option', array( 'POLL_OPTION_ID' => $pd['poll_option_id'], 'POLL_OPTION_CAPTION' => $pd['poll_option_text'], 'POLL_OPTION_RESULT' => $pd['poll_option_total'], 'POLL_OPTION_PERCENT' => $option_pct_txt, 'POLL_OPTION_PCT' => round($option_pct * 100), 'POLL_OPTION_IMG' => $user->img('poll_center', $option_pct_txt, round($option_pct * 250)), 'POLL_OPTION_VOTED' => (in_array($pd['poll_option_id'], $cur_voted_id)) ? true : false )); } } } $db->sql_freeresult($result);
$template->assign_vars(array( 'S_DISPLAY_POLL' => true, 'S_HAS_POLL' => $has_poll, 'POLL_LEFT_CAP_IMG' => $user->img('poll_left'), 'POLL_RIGHT_CAP_IMG' => $user->img('poll_right'), )); }
?>
и сам poll.html - Код: выделить все
<!--version $Id: poll.html 521 2009-08-26 20:59:19Z christian_n $ //--> <a name="viewpoll"></a> {$C_BLOCK_H_L}<dt>{L_POLL}</dt>{$C_BLOCK_H_R} <!-- IF S_HAS_POLL --> <div class="panel bg1" style="margin-bottom: 0px"> <div class="inner"> <!-- BEGIN poll --> <!-- IF poll.S_CAN_VOTE --><form method="post" action="{poll.S_POLL_ACTION}"><!-- ENDIF --> <div class="content"> <h2>{poll.POLL_QUESTION}</h2> <p class="author">{poll.L_POLL_LENGTH}<!-- IF poll.S_CAN_VOTE and poll.L_POLL_LENGTH --><br /><!-- ENDIF --><!-- IF poll.S_CAN_VOTE -->{poll.L_MAX_VOTES}<!-- ENDIF --></p> <fieldset class="polls"> <!-- IF poll.S_POLL_HAS_OPTIONS --> <!-- BEGIN poll_option --> <dl class="<!-- IF poll.poll_option.POLL_OPTION_VOTED -->voted<!-- ENDIF -->"<!-- IF poll.poll_option.POLL_OPTION_VOTED --> title="{L_POLL_VOTED_OPTION}"<!-- ENDIF -->> <dt><!-- IF poll.S_CAN_VOTE --><label for="poll_{poll.TOPIC_ID}_vote_{poll.poll_option.POLL_OPTION_ID}">{poll.poll_option.POLL_OPTION_CAPTION}</label><!-- ELSE -->{poll.poll_option.POLL_OPTION_CAPTION}<!-- ENDIF --></dt> <!-- IF poll.S_CAN_VOTE --><dd style="width: auto;"><!-- IF poll.S_IS_MULTI_CHOICE --><input type="checkbox" name="vote_id[]" id="poll_{poll.TOPIC_ID}_vote_{poll.poll_option.POLL_OPTION_ID}" value="{poll.poll_option.POLL_OPTION_ID}"<!-- IF poll.poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ELSE --><input type="radio" name="vote_id[]" id="poll_{poll.TOPIC_ID}_vote_{poll.poll_option.POLL_OPTION_ID}" value="{poll.poll_option.POLL_OPTION_ID}"<!-- IF poll.poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ENDIF --></dd><!-- ENDIF --> <!-- IF poll.S_DISPLAY_RESULTS --><dd class="resultbar"><div class="<!-- IF poll.poll_option.POLL_OPTION_PCT < 20 -->pollbar1<!-- ELSEIF poll.poll_option.POLL_OPTION_PCT < 40 -->pollbar2<!-- ELSEIF poll.poll_option.POLL_OPTION_PCT < 60 -->pollbar3<!-- ELSEIF poll.poll_option.POLL_OPTION_PCT < 80 -->pollbar4<!-- ELSE -->pollbar5<!-- ENDIF -->" style="width:{poll.poll_option.POLL_OPTION_PERCENT};">{poll.poll_option.POLL_OPTION_RESULT}</div></dd> <dd><!-- IF poll.poll_option.POLL_OPTION_RESULT == 0 -->{L_NO_VOTES}<!-- ELSE -->{poll.poll_option.POLL_OPTION_PERCENT}<!-- ENDIF --></dd><!-- ENDIF --> </dl> <!-- END poll_option --> <!-- ELSE --> {L_NO_OPTIONS} <!-- ENDIF --> <!-- IF poll.S_DISPLAY_RESULTS --> <dl> <dt> </dt> <dd class="resultbar"><p style="font-size:1.0em;">{L_TOTAL_VOTES} : {poll.TOTAL_VOTES}</p></dd> </dl> <!-- ENDIF --> <!-- IF poll.S_CAN_VOTE --> <dl style="border-top: none;"> <dt> </dt> <dd class="resultbar"><input type="submit" name="update" value="{L_SUBMIT_VOTE}" class="button1" /></dd> </dl> <!-- ENDIF --> <!-- IF not poll.S_DISPLAY_RESULTS --> <dl style="border-top: none;"> <dt> </dt> <dd class="resultbar"><p style="font-size:1.0em;"><a href="{poll.U_VIEW_RESULTS}">{L_VIEW_RESULTS}</a></p></dd> </dl> <!-- ENDIF --> <dl style="border-top: none;"> <dt> </dt> <dd class="resultbar"><p style="font-size:1.0em;"><a href="{poll.U_VIEW_TOPIC}">{L_VIEW_TOPIC}</a></p></dd> </dl> </fieldset> </div> <!-- IF poll.S_CAN_VOTE -->{poll.S_HIDDEN_FIELDS}<!-- ENDIF --> <!-- IF poll.S_CAN_VOTE --></form><!-- ENDIF --> <!-- END poll --> </div> </div> <!-- ELSE --> <div class="panel bg1" style="margin-bottom: 0px"> <div class="inner"><span class="portal-corners-top-inner"></span> <span style="text-align: center;"><strong>{L_NO_POLL}</strong></span> <span class="portal-corners-bottom-inner"></span></div> </div> <!-- ENDIF --> {$C_BLOCK_F_L}{$C_BLOCK_F_R}
Осталось разобраться 
Мой проект - Urbanwave Сделано на: phpbb 3.0.7,KTVM portal,Memht portal+моды http://urbanwave.info - Онлайн радио,тв, форумные игры. http://globalbeats.ru/ - Все о клубной музыке. Если есть предложения что либо установить-пишите в личку
-

xC4x
- Поддержка
-
- Сообщений: 2354
- Зарегистрирован:
16 мар 2009, 06:11
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
-
Вернуться в Новые возможности
Кто сейчас на форуме
Зарегистрированные пользователи: Google [Bot], Yandex [Bot]
|
|
|
|
|