1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Копирование музыки друг у друга.

Discussion in 'Моды - Mods' started by Prado, Sep 22, 2009.

  1. Prado Thread starter Challenge Everything


    Offline
    • Admin
    Message Count:
    3,191
    Likes Received:
    786
    My version of phpFox:
    3.0.0
    Копирование музыки друг у друга.

    Выполните SQL запрос в Вашу БД:


    Code:
    ALTER TABLE `se_music` ADD `owner_user_id` text AFTER `music_user_id`
    Откройте include/class_user.php

    Найдите:


    Code:
       return array
        (
          'collaborators' => &$collaborators,
          'pms'           => &$pms
        );
      }

    После добавьте:


    Code:
    function is_already_music($music_id)
    {
        global $database;
        
        $music_tb = $database->database_fetch_assoc($database->database_query("SELECT owner_user_id FROM se_music WHERE music_id='{$music_id}' LIMIT 1"));
        $owner_user_id = $music_tb[owner_user_id];
        
        if(substr_count($owner_user_id, $this->user_info['user_id']) == 0)
            return 0;
        else
            return 1;
        return 1;
    }
    Откройте include/class_music.php

    Найти


    Code:
        if( $this->user_id ) $sql .= "
          WHERE
            se_music.music_user_id='{$this->user_id}'
        ";
    Заменить на:

    Code:
        if( $this->user_id ) $sql .= "
          WHERE
            se_music.music_user_id='{$this->user_id}' OR FIND_IN_SET('{$this->user_id}', owner_user_id)";
    Откройте browse_music.php

    Найти


    Code:
    $music_object = new se_music();
    Добавить

    Code:
    $music_id = $_GET['music_id'];
    if( $_GET['task'] == "copy" && $music_id > 0)
    {
        ob_end_clean();
    
        $music_tb = $database->database_fetch_assoc($database->database_query("SELECT owner_user_id FROM se_music WHERE music_id='{$music_id}' LIMIT 1"));
        $owner_user_id = trim($music_tb[owner_user_id]);
    
        if(strrchr($owner_user_id, ','))
        {
            $owner_user_id_text = explode(',', $owner_user_id);
            $owner_user_id_update = "";
            foreach($owner_user_id_text as $owner_user_id)
            {
                if($owner_user_id != $user->user_info['user_id'])
                    $owner_user_id_update = $owner_user_id_update . "" . $owner_user_id . ",";
            }
            $owner_user_id_update = $owner_user_id_update . "" . $user->user_info['user_id'];
        }
        else
        {
            if($owner_user_id == $user->user_info['user_id'] || strlen($owner_user_id) == 0)
                $owner_user_id_update = $user->user_info['user_id'];
            if( strlen($owner_user_id) > 0 )
                $owner_user_id_update = $owner_user_id . "," . $user->user_info['user_id'];
        }
        $database->database_query("UPDATE `se_music` SET `owner_user_id` = '{$owner_user_id_update}' WHERE `music_id` = '{$music_id}' LIMIT 1");
    }

    Откройте user_music.php

    Найти


    Code:
    $musiclist = $music->music_list();
    Добавить

    Code:
    if( $task == "removesong" && $music_id > 0)
    {
        ob_end_clean();
    
        $music_tb = $database->database_fetch_assoc($database->database_query("SELECT owner_user_id FROM se_music WHERE music_id='{$music_id}' LIMIT 1"));
        $owner_user_id = $music_tb[owner_user_id];
    
        if(strrchr($owner_user_id, ','))
        {
            $owner_user_id_text = explode(',', $owner_user_id);
            $owner_user_id_db = "";
            foreach($owner_user_id_text as $owner_user_id)
            {
                if($owner_user_id != $user->user_info['user_id'])
                    $owner_user_id_db = $owner_user_id_db . "" . $owner_user_id . ",";
            }
            $owner_user_id_db = trim(substr_replace($owner_user_id_db, "", strlen($owner_user_id_db) - 1));
        }
        else
        {
            if($owner_user_id == $user->user_info['user_id'])
                $owner_user_id_text = '';
        }
        $database->database_query("UPDATE `se_music` SET `owner_user_id` = '{$owner_user_id_db}' WHERE `music_id` = '{$music_id}' LIMIT 1");
    }

    Откройте browse_music.tpl

    Найти


    Code:
      {if $user->user_exists && $user->level_info.level_music_allow_downloads}
            <div style='margin-top: 4px;'>
              <a type="application/force-download" href="{$media_path}">{lang_print id=4000095}</a>
            </div>
            {/if}
          </td>

    Добавить после

    Code:
          <td style='vertical-align: top; padding-left: 10px;' width='50'>
          {if $user->user_friended($browse_music_list[browse_music_list_loop].user_id, 1) && $user->is_already_music($browse_music_list[browse_music_list_loop].music_id) == 0}
            <div style='font-weight: bold; font-size: 8pt; text-align: right;'><a href='browse_music.php?task=copy&music_id={$browse_music_list[browse_music_list_loop].music_id}' title='Скопировать музыку к себе'>Копировать</a></div>
          {/if}
          </td>

    Откройте user_music.tpl

    Найти


    Code:
    {assign var='media_dir' value=$url->url_userdir($user->user_info.user_id)}
    {section name=music_loop loop=$musiclist}
    Заменить на

    Code:
    {section name=music_loop loop=$musiclist}
          {assign var='media_dir' value=$url->url_userdir($musiclist[music_loop].music_user_id)}
    
    
    Найти

    Code:
    <input type='checkbox' name='delete_music_{$musiclist[music_loop].music_id}' value='1' />

    Заменить на

    Code:
    {if $musiclist[music_loop].music_user_id == $user->user_info.user_id}<input type='checkbox' name='delete_music_{$musiclist[music_loop].music_id}' value='1' />{/if}
    
    
    Найти

    Code:
    <span class="seMusicTitleEdit">&nbsp;(<a href="javascript:void(0);" onclick="SocialEngine.Music.editMusicTitle({$musiclist[music_loop].music_id});">{lang_print id=187}</a>)</span>

    Заменить на

    Code:
    {if $musiclist[music_loop].music_user_id == $user->user_info.user_id}<span class="seMusicTitleEdit">&nbsp;(<a href="javascript:void(0);" onclick="SocialEngine.Music.editMusicTitle({$musiclist[music_loop].music_id});">{lang_print id=187}</a>)</span>{/if}

    Найти

    Code:
    <span class="seMusicDelete"><a href="javascript:void(0);" onclick="SocialEngine.Music.deleteMusic({$musiclist[music_loop].music_id});">{lang_print id=155}</a>&nbsp;</span>

    Заменить на


    Code:
    {if $musiclist[music_loop].music_user_id == $user->user_info.user_id}
    <span class="seMusicDelete"><a href="javascript:void(0);" onclick="SocialEngine.Music.deleteMusic({$musiclist[music_loop].music_id});">{lang_print id=155}</a>&nbsp;</span>
    {else}
    <span class="seMusicDelete"><a href=" user_music.php?task=removesong&music_id={$musiclist[music_loop].music_id}">{lang_print id=155}</a>&nbsp;</span>
    {/if}
    Откройте music_ajax.php

    Найдите и удалите код


    Code:
    $user_dir = $url->url_userdir($user_id);
    Далее найдите

    Code:
    {$user_dir}
    и замените на

    Code:
    {$url->url_userdir($song[music_user_id])}
    adelka likes this.
  2. vitalikxzx User


    Offline
    Message Count:
    43
    Likes Received:
    1
    Вопросик, а где оно должно то появиться????

    Все нашел спасибо! =)
  3. ExTRANE Active member


    Offline
    Message Count:
    278
    Likes Received:
    62
    А можно из этого для игр перенести ?! ...

    Просто для игр нужнее ...
    юзер будет искать свого друга потом искать его игры потом играть ...

    Не шоб добавить себе и у себя заходить в игру ?!)
  4. DCamer Novice member


    Offline
    Message Count:
    25
    Likes Received:
    0
    Для какой версии SE?
  5. ExTRANE Active member


    Offline
    Message Count:
    278
    Likes Received:
    62
    Версия 3.18
  6. AFG-007 User


    Offline
    Message Count:
    13
    Likes Received:
    0
    My version of SE:
    4.2.6
    а для 3.20 есть? что-то у меня на 3.20 не появился...
  7. okwel Novice member


    Offline
    Message Count:
    1
    Likes Received:
    0
    А как добавить на страницу поиска? search.tpl
  8. aj7r User


    Offline
    Message Count:
    128
    Likes Received:
    39
    My version of SE:
    3.20
    Прикольный мод если кому над для чего не будь ещё могу реализовать, пишите договоримся :)
  9. SummerResident User


    Offline
    Message Count:
    241
    Likes Received:
    4
    Один вопрос:
    Он копирует не физически, надеюсь? Т.е., физически музыка будет лежать у того, у кого скопировали, а не продублируется еще и ко мне в папку на FTP?
  10. SummerResident User


    Offline
    Message Count:
    241
    Likes Received:
    4
    И вообще, я нажимаю "Копировать", а у меня ниче не появляеццо))) Правда у меня установлен хак "Вкладка с музыкой".

Share This Page

All rights reserved SocEngine.ru ©