176

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

В версии 1.4  AnyCode Tool  работает?

Поделиться

177

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

dre@mer, [запрос] AnyCode Tool

Поделиться

178 (13.12.2011 08:31 отредактировано yandrey)

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

hcs пишет:

Задача 5
Кто сейчас просматривает эту тему?
Решение
Импровизация, за основу дёрнут код "кто в онлайне" из индекса.

Хук №1:
vt_start

    $query = array(
        'SELECT'    => 'o.user_id, o.ident',
        'FROM'        => 'online AS o',
        'WHERE'        => 'o.idle=0 AND o.prev_url=\''.get_current_url(255).'\'',
        'ORDER BY'    => 'o.ident'
    );

    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    $forum_page['num_guests'] = $forum_page['num_users'] = 0;
    $users = array();
    
    while ($forum_user_online = $forum_db->fetch_assoc($result))
    {
        
        if ($forum_user_online['user_id'] > 1)
        {
            $users[] = ($forum_user['g_view_users'] == '1') ? '<a href="'.forum_link($forum_url['user'], $forum_user_online['user_id']).'">'.forum_htmlencode($forum_user_online['ident']).'</a>' : forum_htmlencode($forum_user_online['ident']);
            ++$forum_page['num_users'];
        }
        else
            ++$forum_page['num_guests'];
    }

require_once FORUM_ROOT.'lang/'.$forum_user['language'].'/index.php';
    
    $forum_page['online_info'] = array();
    $forum_page['online_info']['guests'] = ($forum_page['num_guests'] == 0) ? $lang_index['Guests none'] : sprintf((($forum_page['num_guests'] == 1) ? $lang_index['Guests single'] : $lang_index['Guests plural']), forum_number_format($forum_page['num_guests']));
    $forum_page['online_info']['users'] = ($forum_page['num_users'] == 0) ? $lang_index['Users none'] : sprintf((($forum_page['num_users'] == 1) ? $lang_index['Users single'] : $lang_index['Users plural']), forum_number_format($forum_page['num_users']));

Хук №2: vt_end

    ?>
<div id="brd-online" class="gen-content">
    <h3 class="hn"><span><?php printf($lang_index['Currently online'], implode($lang_index['Online stats separator'], $forum_page['online_info'])) ?></span></h3>
<?php if (!empty($users)): ?>    <p><?php echo implode($lang_index['Online list separator'], $users) ?></p>
<?php endif;?>
</div>
<?php

Во втором хуке можно $lang_index['Currently online'] заменить на что-нибудь вроде 'Просматривают тему ( %s )'

как то неправильно, ибо показывает только находящихся по точно такому url, на другой странице, через post - уже не в теме

сделал так:

    <install><![CDATA[
    
        $query = 'ALTER TABLE '.$db_prefix.'online ADD last_tid INT(10) UNSIGNED DEFAULT "0" NOT NULL';
        $forum_db->query($query) or error(__FILE__, __LINE__);
        
    ]]></install>
    
    <uninstall><![CDATA[
    
        $query = 'ALTER TABLE '.$db_prefix.'online DROP last_tid';
        $forum_db->query($query) or error(__FILE__, __LINE__);
        
    ]]></uninstall> 


    <hooks>

        <hook id="fn_cookie_login_qr_update_online_user, fn_set_default_user_qr_update_online_guest_user"><![CDATA[

                    $query['SET'] .= ', last_tid=0';

        ]]></hook>

        <hook id="vt_end"><![CDATA[

    $user_ident = ($forum_user['id']==1) ? ' AND ident=\''.$forum_db->escape(get_remote_address()).'\'' : '';
    $query = array(
        'UPDATE'    => 'online',
        'SET'        => 'last_tid='.$id,
        'WHERE'        => 'user_id='.$forum_user['id'].$user_ident
        );

    $forum_db->query_build($query) or error(__FILE__, __LINE__);

    $query = array(
        'SELECT'    => 'o.user_id, o.ident',
        'FROM'        => 'online AS o',
        'WHERE'        => 'o.idle=0 AND o.last_tid='.$id
    );

    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    $forum_page['num_guests'] = $forum_page['num_users'] = 0;
    $users = array();
    
    while ($forum_user_online = $forum_db->fetch_assoc($result))
    {
        
        if ($forum_user_online['user_id'] > 1)
        {
            $users[] = ($forum_user['g_view_users'] == '1') ? '<a href="'.forum_link($forum_url['user'], $forum_user_online['user_id']).'">'.forum_htmlencode($forum_user_online['ident']).'</a>' : forum_htmlencode($forum_user_online['ident']);
            ++$forum_page['num_users'];
        }
        else
            ++$forum_page['num_guests'];
    }

require_once FORUM_ROOT.'lang/'.$forum_user['language'].'/index.php';
    
    $forum_page['online_info'] = array();
    $forum_page['online_info']['guests'] = ($forum_page['num_guests'] == 0) ? $lang_index['Guests none'] : sprintf((($forum_page['num_guests'] == 1) ? $lang_index['Guests single'] : $lang_index['Guests plural']), forum_number_format($forum_page['num_guests']));
    $forum_page['online_info']['users'] = ($forum_page['num_users'] == 0) ? $lang_index['Users none'] : sprintf((($forum_page['num_users'] == 1) ? $lang_index['Users single'] : $lang_index['Users plural']), forum_number_format($forum_page['num_users']));


?>
<div class="gen-content">
  <h2 class="hn"><span><?php printf($lang_index['Currently online'], implode($lang_index['Online stats separator'], $forum_page['online_info'])) ?></span>
<?php if (!empty($users)): ?>     —  <span><?php echo implode($lang_index['Online list separator'], $users) ?></span>
<?php endif;?>
 </h2>
</div>
<?php
        ]]></hook>




    </hooks>
+ hcs

Сайт yandrey

Поделиться

179

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

установил на 1.4.2
что требуется:
один IP - один пользователь, то есть если с IP была регистрация, запретить регистироваться повторно.

файл:
forum/register.php

хук:
rg_register_qr_check_register_flood

код:

$query['WHERE'] = 'u.registration_ip=\''.$forum_db->escape(get_remote_address()).'\'';

сейчас код прописан в файле после хука, а когда копирую в anycode tool то не срабатывает

Поделиться

180

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Решение активировано?

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

181

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

да, solution enabled, hook enable

странно, но я пишу туда что угодно, и ошибки не возникает

Поделиться

182

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

yandrey
Попробовал ваше решение - не работает.
Что куда ставить Вы не указали.
Версия форума 1.4.2

Поделиться

183

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

Как же вы попробовали если он не указал что куда ставить??
Там предлагается не решение а полноценное расширение, единственно что отсутствуют заголовки манифеста.

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

184

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

hcs пишет:

Как же вы попробовали если он не указал что куда ставить??
Там предлагается не решение а полноценное расширение, единственно что отсутствуют заголовки манифеста.

Так и пробовал за место вашего ставить - в итоге форум ломался.
Ставил в две части как у Вас старт и конец..Ставил как отдельное расширение полноценное - хук - не работало.
Манифест?

Поделиться

185

Re: [Релиз] AnyCode Tool (1.0.0 Beta)

В 1.3 работало, в 1.4 нет.
Запретить доступ из определенных сетей в определенные форумы:

Редактировать хук vt_pre_header_load в решении hide_categories

//hide category
$allowed_networks = Array("11","10");
unset($myNET);
$myNET = $_SERVER["HTTP_X_REAL_IP"];
$myNET = getenv('HTTP_X_REAL_IP');
$myIParr = explode(".",$myNET);
$myNET = $myIParr[0];
if(array_search($myNET, $allowed_networks) === false) {
if($cur_topic['forum_id'] == 3 or $cur_topic['forum_id'] == 4  or $cur_topic['forum_id'] == 5 or $cur_topic['forum_id'] == 30 or $cur_topic['forum_id'] == 28 or $cur_topic['forum_id'] == 31)
if($forum_user['group_id'] != 1 and $forum_user['group_id'] != 4 and $forum_user['group_id'] != 5) {
        message($lang_common['No permission']);
     }

 }
//hide category

Вроде всё так же, а что-то не срабатывает...
Или может можно как-нибудь красиво скрыть с главной всю категорию форумов?

Поделиться