Как ни странно, но оказывается, что в данный момент нету такой возможности в DLE по умолчанию. Celsoft, конечно, обещает добавить эту страницу в следующем релизе, ну а я сделал мини-модуль, который позволяет вывести опросы на отдельной странице и на более ранних версиях DLE
В папке
engine/modules/ создать файл
allvotes.php с содержимым:
<?PHP
if(!defined('DATALIFEENGINE'))die("Hacking attempt!");
global $_IP;
$nick = $db->safesql($member_id['name']);
$sql_result = $db->query( "SELECT * FROM " . PREFIX . "_vote" );
$content = "";
while ( $row = $db->get_row( $sql_result ) ) {
$title = stripslashes( $row['title'] );
$body = stripslashes( $row['body'] );
$body = explode( "<br />", $body );
$max = $row['vote_num'];
$db->query( "SELECT answer, count(*) as count FROM " . PREFIX . "_vote_result WHERE vote_id='{$row['id']}' GROUP BY answer" );
$answer = array ();
while ( $row1 = $db->get_row() ) $answer[$row1['answer']]['count'] = $row1['count'];
$pn = 0;
$entry = "";
$allow_vote = true;
$disable = $lang['vote_disable'];
if ($row['start'] AND $_TIME < $row['start'] ) $allow_vote = false;
if ($row['end'] AND $_TIME > $row['end'] ) $allow_vote = false;
if ( !$row['approve'] ) $allow_vote = false;
if ($user_group[$member_id['user_group']]['allow_vote']) {
if( $is_logged ) $row2 = $db->super_query( "SELECT count(*) as count FROM " . PREFIX . "_vote_result WHERE vote_id='{$row['id']}' AND name='$nick'" );
else $row2 = $db->super_query( "SELECT count(*) as count FROM " . PREFIX . "_vote_result WHERE vote_id='{$row['id']}' AND ip='$_IP'" );
if( $row2['count'] OR count( explode( ".", $_IP ) ) != 4 ) { $disable = $lang['vote_disable_1']; $allow_vote = false; }
} else { $disable = $lang['vote_not_allow']; $allow_vote = false; }
for($i = 0; $i < sizeof( $body ); $i ++) {
++ $pn;
if( $pn > 5 ) $pn = 1;
$num = $answer[$i]['count'];
if( ! $num ) $num = 0;
if( $max != 0 ) $proc = (100 * $num) / $max;
else $proc = 0;
$proc = round( $proc, 2 );
if( $i == 0 ) $sel = "checked=\"checked\"";
else $sel = "";
if ( $allow_vote )
$radio = "<input name=\"vote_check\" type=\"radio\" $sel value=\"$i\" />";
else
$radio = " ";
$entry .= "<tr><td width=\"20\" nowrap>{$radio}</td><td><div class=\"vote\">$body[$i] - $num ($proc%)</div><div class=\"voteprogress\"><span class=\"vote{$pn}\" style=\"width:".intval($proc)."%;\">{$proc}%</span></div></td></tr>";
}
$entry = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">{$entry}</table>";
if ( $allow_vote ) $button = "<br /><input type=\"submit\" onclick=\"fast_vote('{$row['id']}'); return false;\" class=\"dlevotebutton\" value=\"{$lang['vote_set']}\" />";
else $button = "<font color=\"red\">{$disable}</font>";
$content .= <<<HTML
<form method="post" name="vote_{$row['id']}" id="vote_{$row['id']}" action=''>
<fieldset>
<legend>{$title}</legend>
<div id="dle-vote_list-{$row['id']}">{$entry}{$button}<br /><br />{$lang['max_votes']} {$max}</div>
</fieldset>
</form>
HTML;
}
echo $content;
?>
Создать статическую страницу с любым именем, но для простоты оставим
allvotesТекст статической страницы - любой. Поле обязательно к заполнению, но мы его использовать не будем.
В поле использовать шаблон пишем
allvotes и следовательно в папке с шаблоном создаем файл
allvotes.tpl с содержимым:
<div class="basecont">
<div class="dpad">
<h2 class="heading"><span id="news-title">{description}</span></h2>
{include file="engine/modules/allvotes.php"}
</div>
</div>
Или просто:
<h1>Все опросы</h1>
{include file="engine/modules/allvotes.php"}
Все, готово. Теперь все опросы будут доступны по адресу
/allvotes.htmlС уважением,
Олег Александрович a.k.a. Sander