[help]Авто Юзербар

Тема в разделе "DLE", создана пользователем CnecHa3, 16 фев 2008.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. CnecHa3

    CnecHa3 Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    105
    Симпатии:
    20
    Привет всем форумчаном!

    помоги пожалуйста сделать ЮзерБар для ДЛЕ
    Чтобы на нем выводились Кол-во Новостей, Кол-во Комментов и Рейтинг!
    в WWW искал, искал не чего не нашол !

    Вспомнил что такая фишка была у Торрент Скрипта!
    вот она:
    PHP:
    <?
    //
    // Author: TracKer
    // E-Mail: tracker2k@gmail.com
    // Version 0.1.7 (Major.Minor.Revision)
    // Homepage: http://tracker.ho.com.ua/torrentbar/
    //
    // Copyright (C) 2006  TracKer
    // 
    // This program is free software; you can redistribute it and/or
    // modify it under the terms of the GNU General Public License
    // as published by the Free Software Foundation; either version 2
    // of the License, or (at your option) any later version.
    // 
    // This program is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    // 
    // You should have received a copy of the GNU General Public License
    // along with this program; if not, write to the Free Software
    // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    //
    // See doc/copying.txt for details
    //
    //===========================================================================
    // Info
    //===========================================================================
    //
    // [IN]
    //   userid - ID of user in TorrentPier forum
    //
    // [OUT]
    //   PNG file
    //
    // [Example]
    //   http://127.0.0.1/bar.php/USERID.png
    //
    //===========================================================================
    // Presets
    //===========================================================================

    // Ported from phpBB 2 + TorrentPier to TBDev: StirolXXX a.k.a Yuna Scatari
    // E-Mail: stirol@gmail.com
    // Copyright (C) 2006  StirolXXX

    // Database Presets
    $config_path "../include/secrets.php";

    $template_file "./template.png";

    $rating_x 37;
    $rating_y 7;

    $upload_x 104;
    $upload_y 7;

    $download_x 198;
    $download_y 7;

    $digits_template "./digits.png";
    $digits_config "./digits.ini";

    //===========================================================================
    // Funtions
    //===========================================================================

    function getParam() {
        
    $res preg_replace("#(.*)\/(.*)\.png#i""$2"$_SERVER['REQUEST_URI']);
        
    $res trim(substr(trim($res), 010));
        if (! 
    is_numeric($res)) { die("Invalid user_id or hacking attempt."); }
        return 
    $res;
    }

    function 
    mysql_init() {
        global 
    $mysql_host$mysql_db$mysql_user$mysql_pass;
        if (
    $mysql_pass!='') {
            
    $link = @mysql_connect($mysql_host$mysql_user$mysql_pass) or die("Cannot connect to database!"); 
        } else {
            
    $link = @mysql_connect($mysql_host$mysql_user) or die("Cannot connect to database!"); 
        }
        
    mysql_select_db($mysql_db) or die("Cannot select database!");
        return 
    $link;
    }

    function 
    ifthen($ifcondition$iftrue$iffalse) {
        if (
    $ifcondition) {
            return 
    $iftrue;
        } else {
            return 
    $iffalse;
        }
    }

    function 
    getPostfix($val) {
        
    $postfix "b";
        if (
    $val>=1024)             { $postfix "kb"; }
        if (
    $val>=1048576)          { $postfix "mb"; }
        if (
    $val>=1073741824)       { $postfix "gb"; }
        if (
    $val>=1099511627776)    { $postfix "tb"; }
        if (
    $val>=1125899906842624) { $postfix "pb"; }
        if (
    $val>=1152921504606846976)       { $postfix "eb"; }
        if (
    $val>=1180591620717411303424)    { $postfix "zb"; }
        if (
    $val>=1208925819614629174706176) { $postfix "yb"; }
        
        return 
    $postfix;
    }

    function 
    roundCounter($value$postfix) {
        
    $val=$value;
        switch (
    $postfix) {
        case 
    "kb"$val=$val 1024;
            break;
        case 
    "mb"$val=$val 1048576;
            break;
        case 
    "gb"$val=$val 1073741824;
            break;
        case 
    "tb"$val=$val 1099511627776;
            break;
        case 
    "pb"$val=$val 1125899906842624;
            break;
        case 
    "eb"$val=$val 1152921504606846976;
            break;
        case 
    "zb"$val=$val 1180591620717411303424;
            break;
        case 
    "yb"$val=$val 1208925819614629174706176;
            break;
            
        default:
            break;
        }
        return 
    $val;
    }

    //===========================================================================
    // Main body
    //===========================================================================

    // Digits initialization - begin
    $digits_ini = @parse_ini_file($digits_config) or die("Cannot load Digits Configuration file!");
    $digits_img = @imagecreatefrompng($digits_template) or die("Cannot Initialize new GD image stream!");
    // Digits initialization - end

    $download_counter 0;
    $upload_counter 0;
    $rating_counter 0;

    $img = @imagecreatefrompng($template_file) or die ("Cannot Initialize new GD image stream!");

    $userid getParam();
    if (
    $userid!="") {
        include(
    $config_path);
        
    mysql_init();
        
        
    $query "SELECT COUNT(id) FROM users WHERE id = '".$userid."'";
        
    $result = @mysql_query($query) or die("Could not select data!");
        
    $counter mysql_result($result0);
        
    mysql_free_result($result);
        
        if (
    $counter>0) {
            
    $query "SELECT uploaded, downloaded FROM users WHERE id = ".$userid;
            
    $result mysql_query($query) or die("Could not select data!");
            
            while (
    $data mysql_fetch_array($result))
            {
                
    $upload_counter $data['uploaded'];
                
    $download_counter $data['downloaded'];
                if (
    $download_counter>0) {
                    
    $rating_counter $upload_counter $download_counter;
                }
            }
        }
    }

    $dot_pos strpos((string) $rating_counter".");
    if (
    $dot_pos>0) {
        
    $rating_counter = (string) round(substr((string) $rating_counter0$dot_pos+1+2), 2);
    } else {
        
    $rating_counter = (string) $rating_counter;
    }
    $counter_x $rating_x;
    for (
    $i=0$i<strlen($rating_counter); $i++) {
        
    $d_x=$digits_ini[ifthen($rating_counter[$i]==".""dot"$rating_counter[$i])."_x"];
        
    $d_w=$digits_ini[ifthen($rating_counter[$i]==".""dot"$rating_counter[$i])."_w"];
        
    imagecopy($img$digits_img$counter_x$rating_y$d_x0$d_wimagesy($digits_img));
        
    $counter_x=$counter_x+$d_w-1;
    }


    $postfix getPostfix($upload_counter);
    $upload_counter roundCounter($upload_counter$postfix);
    $dot_pos strpos((string) $upload_counter".");
    if (
    $dot_pos>0) {
        
    $upload_counter = (string) round(substr((string) $upload_counter0$dot_pos+1+2), 2);
    } else {
        
    $upload_counter = (string) $upload_counter;
    }
    $counter_x $upload_x;
    for (
    $i=0$i<strlen($upload_counter); $i++) {
        
    $d_x=$digits_ini[ifthen($upload_counter[$i]==".""dot"$upload_counter[$i])."_x"];
        
    $d_w=$digits_ini[ifthen($upload_counter[$i]==".""dot"$upload_counter[$i])."_w"];
        
    imagecopy($img$digits_img$counter_x$upload_y$d_x0$d_wimagesy($digits_img));
        
    $counter_x=$counter_x+$d_w-1;
    }
    $counter_x+=3;
    $d_x=$digits_ini[$postfix."_x"];
    $d_w=$digits_ini[$postfix."_w"];
    imagecopy($img$digits_img$counter_x$upload_y$d_x0$d_wimagesy($digits_img));


    $postfix getPostfix($download_counter);
    $download_counter roundCounter($download_counter$postfix);
    $dot_pos strpos((string) $download_counter".");
    if (
    $dot_pos>0) {
        
    $download_counter = (string) round(substr((string) $download_counter0$dot_pos+1+2), 2);
    } else {
        
    $download_counter = (string) $download_counter;
    }
    $counter_x $download_x;
    for (
    $i=0$i<strlen($download_counter); $i++) {
        
    $d_x=$digits_ini[ifthen($download_counter[$i]==".""dot"$download_counter[$i])."_x"];
        
    $d_w=$digits_ini[ifthen($download_counter[$i]==".""dot"$download_counter[$i])."_w"];
        
    imagecopy($img$digits_img$counter_x$download_y$d_x0$d_wimagesy($digits_img));
        
    $counter_x=$counter_x+$d_w-1;
    }
    $counter_x+=3;
    $d_x=$digits_ini[$postfix."_x"];
    $d_w=$digits_ini[$postfix."_w"];
    imagecopy($img$digits_img$counter_x$download_y$d_x0$d_wimagesy($digits_img));
    header("Content-type: image/png");
    imagepng($img);
    imagedestroy($img);
    ?>
    Спасибо! ;)
     
  2. kwin

    kwin

    Регистр.:
    22 авг 2007
    Сообщения:
    413
    Симпатии:
    167
    [​IMG]

    вот нашел на просторах инета

    + псд и шрифты
     

    Вложения:

    • userbar.rar
      Размер файла:
      71,2 КБ
      Просмотров:
      35
    E-body, Traxalo и CnecHa3 нравится это.
  3. Traxalo

    Traxalo Читатель

    Заблокирован
    Регистр.:
    4 июн 2007
    Сообщения:
    93
    Симпатии:
    9
    Всегда было интересно как это работает...
    Может кто разъеснит тупому :) Интересуюсь в целях повышиения образования
     
  4. drop

    drop

    Регистр.:
    1 янв 2007
    Сообщения:
    413
    Симпатии:
    190
    А можно прикрутить сюда както ещё что б показывало сколько юзер зарегин на сайте? (что б считало количество дней)
     
  5. kwin

    kwin

    Регистр.:
    22 авг 2007
    Сообщения:
    413
    Симпатии:
    167
    ну просто из базы берется кол-во новостей, комментов, потом для каждого юзера юзербар на 1 основе, рзличие по id .. и поверху наслаивается через GD само это кол-во
     
  6. Traxalo

    Traxalo Читатель

    Заблокирован
    Регистр.:
    4 июн 2007
    Сообщения:
    93
    Симпатии:
    9
    Который GD интерпритатор?
    Да да, проходили, задовали!

    Вообщем автору респект...
    Доберусь до дома поставлю себе
     
  7. CnecHa3

    CnecHa3 Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    105
    Симпатии:
    20
    по идеи да!
    вот пример(не проверял "когда юзер был зареган")
    PHP:
    //
    $ubconf['regx'] ='150'//Координата Х
    $ubconf['regy'] ='7'//Координата Y
    //
    $userid getID();
    if (
    $userid!="") {
    //делаем запрос к бд
        
    $counter $db->super_query("SELECT COUNT(user_id) FROM " PREFIX "_users WHERE user_id = ".$userid);
        if (
    $counter>0) {
        
    $db->query("SELECT news_num, comm_num FROM " PREFIX "_users WHERE user_id = ".$userid);
        while(
    $row $db->get_row()){
              
    $news_counter $row['news_num'];
              
    $comm_counter $row['comm_num'];
              
    $reg_date =  langdate("j/m/Y"$row['reg_date']);
            }
        }
    }
    //выводим сколько reg
    $counter_x $ubconf['regx'];
    for (
    $i=0$i<strlen($reg_date); $i++) {
        
    $c_x=$digits_ini[ifthen($reg_date[$i]==".""dot"$reg_date[$i])."_x"];
        
    $c_w=$digits_ini[ifthen($reg_date[$i]==".""dot"$reg_date[$i])."_w"];
        
    imagecopy($img$digits_img$counter_x$ubconf['regy'], $c_x0$c_wimagesy($digits_img));
        
    $counter_x=$counter_x+$c_w-1;
    }
    чтото типа того!;)
    а сколько он зареган
    PHP:
    //
    $ubconf['regtx'] ='50'//Координата Х
    $ubconf['regty'] ='7'//Координата Y
    //
    $userid getID();
    if (
    $userid!="") {
    //делаем запрос к бд
        
    $counter $db->super_query("SELECT COUNT(user_id) FROM " PREFIX "_users WHERE user_id = ".$userid);
        if (
    $counter>0) {
        
    $db->query("SELECT news_num, comm_num FROM " PREFIX "_users WHERE user_id = ".$userid);
        while(
    $row $db->get_row()){
              
    $news_counter $row['news_num'];
              
    $comm_counter $row['comm_num'];
              
    $reg_time langdate("j/m/Y"$row['lastdate']) - langdate("j/m/Y"$row['reg_date']);
            }
        }
    }
    //выводим сколько regt
    $counter_x $ubconf['regtx'];
    for (
    $i=0$i<strlen($reg_time); $i++) {
        
    $c_x=$digits_ini[ifthen($reg_time[$i]==".""dot"$reg_time[$i])."_x"];
        
    $c_w=$digits_ini[ifthen($reg_time[$i]==".""dot"$reg_time[$i])."_w"];
        
    imagecopy($img$digits_img$counter_x$ubconf['regty'], $c_x0$c_wimagesy($digits_img));
        
    $counter_x=$counter_x+$c_w-1;
    }
    Вроде должно работать! :yahoo:
     
    drop нравится это.
  8. E-body

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    983
    Симпатии:
    320
    А как можно сделать чтоб бб код для форумов или сайтов отправлялся на почту юзера при регистрации?
     
Статус темы:
Закрыта.