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

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

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

Граффити на стену

Discussion in 'Хаки - Haks' started by Gramonolino, Sep 9, 2010.

  1. iWalker Novice member


    Offline
    Message Count:
    86
    Likes Received:
    3
    My version of SE:
    3.15
    1. В теле php кода страницы отправки граффити есть sql комманда "INSERT blablabla" Создай такую же комманду для вставки в ленту активности.
    2. http://orangoo.com/labs/GreyBox/ - замечательная вещь для этого
  2. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Я стандартными методами SE вывел графити в всплывающем окне не покидая страницы, но при сохранении граффити идёт переадресация на профиль в том же попап окне. Т.е. на кнопку "Отправить" надо привязать другое действия, а для этого походу надо лезть в флэшку.
    Можно подробнее или пример кода из любого другого плагина.
    На примере блога:
    PHP:
        // INSERT ACTION
        
    if( !$is_edit )
        {
          if( 
    strlen($blogentry_title)>100 )
            
    $blogentry_title substr($blogentry_title097); $blogentry_title .= "...";
          
          
    $actions->actions_add(
            
    $user,
            
    "postblog",
            array(
              
    $user->user_info['user_username'],
              
    $user->user_displayname,
              
    $blogentry_id,
              
    $blogentry_title
            
    ),
            array(),
            
    0,
            
    FALSE,
            
    "user",
            
    $user->user_info['user_id'],
            
    $blogentry_privacy
          
    );
        }
    Так наверное и БД запрос надо сделать, добавив полей нужных?
    Кто поможет реализовать?
  3. iWalker Novice member


    Offline
    Message Count:
    86
    Likes Received:
    3
    My version of SE:
    3.15
    PHP:
    $db->database_query("INSERT INTO wall (wallpost_user_id, wallpost_author_id, wallpost_date, wallpost_body) VALUES ('".$owner->uinfo[uid]."', '".$user->uinfo[uid]."', '$wallpost_date', '$wallpost_body')");
    Не знаю как там в оригинальном SE, но примерно в этом коде
  4. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Граффити (действие) в ленту активности, не на стену.


    ---------- Запрос в БД ----------------------------------------------

    PHP:
          INSERT INTO se_actiontypes
            
    (actiontype_nameactiontype_iconactiontype_settingactiontype_enabledactiontype_descactiontype_textactiontype_varsactiontype_media)
          
    VALUES
            
    ('newgraffiti''action_graffiti.gif''1''1''700501''700502''[username1],[displayname1],[username2],[displayname2],[comment]'0);
    Поправьте, если что не так.

    ---------- Лэнг файл ----------------------------------------

    PHP:
    <?php die("Access Denied"); ?>
    LANGUAGE_CODE:=ru
    LANGUAGE_NAME:=Russian
    LANGUAGE_LOCALE:=
    LANGUAGE_AUTODETECT:=/^ru/i
    LANGUAGE_RECORD_FIRST:=700501
    LANGUAGE_RECORD_LAST:=700502
    700501:=Добавление граффити.
    700502:=Граффити <a href='profile.php?user=%1$s'>%2$s</a> в профиле <a href='profile.php?user=%3$s&v=comments'>%4$s</a>
    Поправьте, если что не так.


    ---------- Картинка для ленты ------------------------------------------

    [IMG]



    ------------- В файле user_graffiti.php заменить ----------- в разработке ----------

    PHP:

    $actions
    ->actions_add($user"postcomment", Array('[username1]''[username2]''[comment]'), Array($commenter$owner->user_info[user_username], $comment_body_encoded));
    на
    PHP:

    $actions
    ->actions_add($user"newgraffiti", Array($user->user_info['user_username'], $user->user_displayname$owner->user_info['user_username'], $owner->user_displayname$comment_body_encoded), Array($commenter$owner->user_info[user_username], $comment_body_encoded));
    Пока получилось это, но ошибка отправления в чужом профиле, хотя все добавления происходят:
    graf..jpg graf2..jpg
  5. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Открытие Граффити в всплывающем окне в комментариях
    PHP:

    {* COMMENTS *}
            {if 
    $user->user_exists != 0}<span style='float: right; margin:5px 10px 0 0;'><a href="javascript:TB_show('Граффити', 'user_graffiti.php?user={$owner->user_info.user_username}&TB_iframe=true&height=400&width=600', '', './images/trans.gif');" target="_parent">Граффити<img src='/images/icons/graffiti.gif' alt='Граффити' title='Граффити' border='0' align='top'></a></span>{/if}

    ...но при сохранении граффити идёт переадресация на страницу профиля в том же попап окне

    Может тут можно что-то сделать user_graffiti.tpl?
    В этой строке so.addVariable('redirectTo','profile.php?user={$graffitiName}%26addgraffiti={$graffitiRand}');

    PHP:
    <script src='include/js/swfobject.js'></script>
    <div id="flash_player_container" style="text-align: center; width: 100%; margin: auto;">You need flash for this feature: <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&promoid=BIOW">Flash Player</a>.</div>

    <script type="text/javascript">
    //<![CDATA[
    var so = new SWFObject('include/flash/graffiti.swf','player',"600","385",'10');
            so.addVariable('menu','false');
            so.addParam("allowfullscreen","false");
            so.addVariable('overstretch','false');
            so.addVariable('postTo','user_graffiti.php?user={$graffitiName}%26graffiti={$graffitiRand}');
            so.addVariable('redirectTo','profile.php?user={$graffitiName}%26addgraffiti={$graffitiRand}');
            so.write('flash_player_container');
    //]]>
    </script>
    Надо открыть ту же страницу комментариев, где и был изначально, и закрыть это попап окно.
  6. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Gooos, я жс не очень хорошо знаю. Попробуй задай этот вопрос на пыхе. Должны ответить. Но чета мне кажется хрен так сделаешь. Сделай всплывающее окно не окном, а к примеру окошком а жквери.
  7. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Мои юзеры сказали, что это граффити им даром не надо, посему забиваю на это. Но если кто хочет закончить, то надо лезть во флэху, ставить на кнопку "Отправить" target _parent или _self и править этот код, для получения нужной ссылки
    PHP:
    so.addVariable('redirectTo','profile.php?user={$graffitiName}%26addgraffiti={$graffitiRand}');
    Ну в общем как-то так.

    И ещё:
    После удаления комментария, картинка граффити не удаляется из папки uploads_graffiti

    В общем это граффити взято от SE2.xx и явно не хватает файлов, например файла инстала, иначе как в БД в таблице se_actions должна появиться запись postcomment со значениями [username1], [username2], [comment], потому и нет ничего в ленте активности.
    Папка lang содержит лэнг файл от SE2.xx .
  8. djpower User


    Offline
    Message Count:
    93
    Likes Received:
    8
    а как графити сделать в группы?
  9. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    В ленту активности, проверено работает:

    Открыть user_graffiti.php и найти:

    PHP:


                  
    if($user->user_exists != 0)
                  {
                    
    $commenter $user->user_info[user_username];
                    
    $comment_body_encoded $user_graffiti[1];
                    
    $actions->actions_add($user"postcomment", Array('[username1]''[username2]''[comment]'), Array($commenter$owner->user_info[user_username], $comment_body_encoded));
                    if(
    $owner->user_info[user_id] != $user->user_info[user_id])
                    {
                      
    send_profilecomment($owner$commenter);
                    }
                  }
    и заменить на:

    PHP:
    if($user->user_exists != 0)

                  {

                  
    $actions->actions_add($user"profilecomment", Array(
                           
    $user->user_info['user_username'],
                           
    $user->user_displayname,
                           
    $owner->user_info['user_username'],
                           
    $owner->user_displayname,
                           
    $comment_body
                  
    ));

                  }
    не забудьте в styles.css поменять высоту, иначе появится полоса прокрутки

    PHP:
    .recentaction_div {
    max-height:150px;
  10. igrok Novice member


    Offline
    Message Count:
    49
    Likes Received:
    1
    а можно запретить рисовать на других стенах, только на своей :)

Share This Page

All rights reserved SocEngine.ru ©