[MOD] SimplePortal - awatary na czacie

  • 14 Odpowiedzi
  • 6418 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline Adrian

  • *****
  • 5523
  • 723
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Adrek.pl
[MOD] SimplePortal - awatary na czacie
« dnia: 20 Marzec 2013, 16:55 »
SP Shoutbox Avatars



Modyfikacja doda awatar użytkownika obok jego nazwy na czacie. Mod znacząco zwiększy liczbę zapytań do bazy danych: 1 awatar = 2 zapytania.

http://img20.imageshack.us/img20/281/myboard.png
[MOD] SimplePortal - awatary na czacie


Testowane z SimplePortal 2.3.5.

*

Offline Stanley

  • ****
  • 2152
  • 81
  • Płeć: Mężczyzna
  • Specjalista od niczego.
  • Domyślny styl: Własny
  • Wersja SMF: 2.0.15
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #1 dnia: 20 Marzec 2013, 17:23 »
Dzięki :) kurcze zrób te wszystkie opcje od SMF pack shoutbox  :P
Moje fora: pesnext.pl

Specjalista od niczego.

Pomogłem?, - Klinkij [Pomógł]

*

Offline Adrian

  • *****
  • 5523
  • 723
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Adrek.pl
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #2 dnia: 20 Marzec 2013, 17:36 »
Nie używam tamtego czatu, więc nie ma na to szans.

*

Offline obcy12

  • *****
  • 226
  • 6
  • Płeć: Mężczyzna
  • Domyślny styl: Curve
  • Wersja SMF: 2.0.15
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #3 dnia: 24 Luty 2016, 10:20 »
Można prosić o przystosowanie tego moda do simpleportal 2.3.6
Bo jak zainstaluje to avatary raz są a za chwilę puste kwadraty na obrazek.

*

Offline obcy12

  • *****
  • 226
  • 6
  • Płeć: Mężczyzna
  • Domyślny styl: Curve
  • Wersja SMF: 2.0.15
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #4 dnia: 25 Luty 2016, 10:12 »
Przepraszam już nie jest to konieczne.

*

Offline jacek6663

  • *****
  • 164
  • 2
  • Płeć: Mężczyzna
    • World of Consoles
  • Domyślny styl: DarkBreak
  • Wersja SMF: 2.0.11
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #5 dnia: 16 Marzec 2016, 18:50 »
możesz napisać jak sobie z tym poradziłeś bo mam ten sam problem jak sie napisze cos na chat to pojawiają się kwadraty a jak odświeże to juz jest ok
Przepraszam już nie jest to konieczne.

*

Offline obcy12

  • *****
  • 226
  • 6
  • Płeć: Mężczyzna
  • Domyślny styl: Curve
  • Wersja SMF: 2.0.15
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #6 dnia: 17 Marzec 2016, 09:09 »
W pliku: /Themes/default/PortalShoutbox.template.php znajdź:
<shout>
<id>', $shout['id'], '</id>
<author>', htmlspecialchars($shout['author']['link']), '</author>
<time>', htmlspecialchars($shout['time']), '</time>
<timeclean>', htmlspecialchars(strip_tags($shout['time'])), '</timeclean>
<delete>', !empty($shout['delete_link_js']) ? htmlspecialchars($shout['delete_link_js']) : 0, '</delete>
<content>', htmlspecialchars($shout['text']), '</content>
<is_me>', $shout['is_me'] ? 1 : 0, '</is_me>
</shout>';
Zamień na:
<shout>
<id>', $shout['id'], '</id>
<author>', htmlspecialchars($shout['author']['link']), '</author>
<avatar>', $shout['author']['avatar'] ,'</avatar>
<time>', htmlspecialchars($shout['time']), '</time>
<timeclean>', htmlspecialchars(strip_tags($shout['time'])), '</timeclean>
<delete>', !empty($shout['delete_link_js']) ? htmlspecialchars($shout['delete_link_js']) : 0, '</delete>
<content>', htmlspecialchars($shout['text']), '</content>
<is_me>', $shout['is_me'] ? 1 : 0, '</is_me>
</shout>';

W pliku: /Themes/default/PortalShoutbox.template.php znajdź:
foreach ($shoutbox['shouts'] as $shout)I po tej linijce dodać kod:
echo '
<li class="smalltext sb_avatar_container">
<div class="sb_avatar" style="background-image:url(' . $shout['author']['avatar'] . ')"></div>
<div class="sb_avatar_text">
  ', !$shout['is_me'] ? '<strong>' . $shout['author']['link'] . ':</strong> ' : '', $shout['text'], '<br />', !empty($shout['delete_link_js']) ? '<span class="shoutbox_delete">' . $shout['delete_link_js'] . '</span>' : '' , '<span class="smalltext shoutbox_time">', $shout['time'], '</span>
</div>
</li>';
(+wywal stare echo z treścią)
co powinno wyglądać mniej więcej tak:
if (!empty($shoutbox['warning']))
echo '
<li class="shoutbox_warning smalltext">', $shoutbox['warning'], '</li>';

if (!empty($shoutbox['shouts']))
foreach ($shoutbox['shouts'] as $shout)
echo '
<li class="smalltext sb_avatar_container">
<div class="sb_avatar" style="background-image:url(' . $shout['author']['avatar'] . ')"></div>
<div class="sb_avatar_text">
  ', !$shout['is_me'] ? '<strong>' . $shout['author']['link'] . ':</strong> ' : '', $shout['text'], '<br />', !empty($shout['delete_link_js']) ? '<span class="shoutbox_delete">' . $shout['delete_link_js'] . '</span>' : '' , '<span class="smalltext shoutbox_time">', $shout['time'], '</span>
</div>
</li>';
else
echo '
<li class="smalltext">', $txt['sp_shoutbox_no_shout'], '</li>';

echo '
</ul>
</div>';

if ($context['can_shout'])

W pliku: Themes/default/scripts/portal.js
Znajdź:
for (var i = 0; i < shouts.length; i++)
{
shout = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("shout")[i];
I po tym dodaj:
avatar = shout.getElementsByTagName("avatar")[0].innerHTML;Dodatkowo na końcu tego fora jest przypisanie do zmiennej new_body kodu HTML. Wywal go i daj zamiast tego to:
new_body += '<li class="smalltext sb_avatar_container"><div class="sb_avatar" style="background-image:url('+ avatar +')"></div><div class="sb_avatar_text">' + (is_me == 0 ? '<strong>' + author + ':</strong> ' : '') + content + '<br />' + (delete_link != 0 ? ('<span class="shoutbox_delete">' + delete_link + '</span>') : '') + '<span class="smalltext shoutbox_time">' + time + '</span></div></li>';
W pliku: Sources/Sub-Portal.php znajdź:
while ($row = $smcFunc['db_fetch_assoc']($request))
{
// Disable the aeva mod for the shoutbox.
$context['aeva_disable'] = true;
$online_color = !empty($row['member_group_color']) ? $row['member_group_color'] : $row['post_group_color'];
$shouts[$row['id_shout']] = array(
'id' => $row['id_shout'],
'author' => array(
'id' => $row['id_member'],
'name' => $row['member_name'],
'link' => $row['id_member'] ? ('<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '" title="' . $txt['on'] . ' ' . strip_tags(timeformat($row['log_time'])) . '"' . (!empty($online_color) ? ' style="color: ' . $online_color . ';"' : '') . '>' . $row['member_name'] . '</a>') : $row['member_name'],
'color' => $online_color,
),
'time' => $row['log_time'],
'text' => parse_bbc($row['body'], true, '', $bbc),
);
}
I zamień na:
while ($row = $smcFunc['db_fetch_assoc']($request))
{
    loadMemberData($row['id_member']);
    loadMemberContext($row['id_member']);
    if(empty($memberContext[$row['id_member']]['avatar']['href']))
    {
        $avatarSB = '';
    }
    else
    {
        $avatarSB = $memberContext[$row['id_member']]['avatar']['href'];
    }

    $context['aeva_disable'] = true;
    $online_color = !empty($row['member_group_color']) ? $row['member_group_color'] : $row['post_group_color'];
    $shouts[$row['id_shout']] = array(
        'id' => $row['id_shout'],
        'author' => array(
            'id' => $row['id_member'],
            'name' => $row['member_name'],
            'avatar' => $avatarSB,
            'link' => $row['id_member'] ? ('<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '" title="' . $txt['on'] . ' ' . strip_tags(timeformat($row['log_time'])) . '"' . (!empty($online_color) ? ' style="color: ' . $online_color . ';"' : '') . '>' . $row['member_name'] . '</a>') : $row['member_name'],
            'color' => $online_color,
        ),
        'time' => $row['log_time'],
        'text' => parse_bbc($row['body'], true, '', $bbc),
    );
}

Oraz w jakimś pliku CSS dostępnym na każdej stronie z SB (np. /Themes/default/css/index.css) dodaj taki kod (obojętnie gdzie, najlepiej na końcu):
.sb_avatar_container {
zoom: 1
}

.sb_avatar_container:after,
.sb_avatar_container:before {
content: "\0020";
display: block;
height: 0;
overflow: hidden;
}

.sb_avatar_container:after {
clear: both;
}

.sb_avatar {
width: 40px;
height: 40px;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
float: left;
margin: 2px;
margin-right: 5px;
background-color: #ECECEC;
box-shadow: 0 0 1px #CCC;
}

.sb_avatar_text {
margin-left: 48px;
}

.sb_avatar_text span.shoutbox_time {
padding-left: 0;
}

.shoutbox_list_compact li {
word-break: break-all;
}

@media(max-width: 1024px)
{
.sb_avatar {
display: none;
}

.sb_avatar_text {
margin-left: 0px;
}
}

W pliku Subs-portal.php:
Jak masz funkcje: function sportal_get_shouts($shoutbox, $parameters)
To musisz dodać do global jeszcze $memberContext
function sportal_get_shouts($shoutbox, $parameters)
{
global $memberContext, $smcFunc, $scripturl, $context, $user_info, $modSettings, $options, $txt;


Nie jestem autorem tych zmian tak że nie pomoge. Tylko je udostępniam za zgoda tej osoby co mi to zrobiła na forum.
Przed zmianami zrób kopie plików które modyfikujesz.

*

Offline jacek6663

  • *****
  • 164
  • 2
  • Płeć: Mężczyzna
    • World of Consoles
  • Domyślny styl: DarkBreak
  • Wersja SMF: 2.0.11
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #7 dnia: 21 Marzec 2016, 12:41 »
oczywiście zaraz na samym początku miałem problem z parsowaniem pliku wiec mam ogromna prośbę do ludzi co maja głowę na karku bo dla mnie to czarna magia podpina te pliki co potrzeba i chciał bym żeby ktoś umieścił tam te kody mam kopie i robocze forum wiec nie przejmować się proszę o pomoc zależy mi na tym

*

Offline obcy12

  • *****
  • 226
  • 6
  • Płeć: Mężczyzna
  • Domyślny styl: Curve
  • Wersja SMF: 2.0.15
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #8 dnia: 21 Marzec 2016, 16:27 »
ok sprawdź ale kopie zachowaj.

*

Offline jacek6663

  • *****
  • 164
  • 2
  • Płeć: Mężczyzna
    • World of Consoles
  • Domyślny styl: DarkBreak
  • Wersja SMF: 2.0.11
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #9 dnia: 21 Marzec 2016, 18:14 »
po dodaniu pliku   PortalShoutbox.template.php     w sb  zamiast avatarów pojawiły sie te znaki po dodaniu reszty plików znaki znikły ale avatary również  )"> http://wocforum.ayz.pl/index.php?board=1.0
rejestracja otwarta można luknąć czekam na jakieś wskazówki
czy moze odinstalowac teraz mod Shoutbox Avatars - SimplePortal 2.3.5 i zainstalować jeszcze raz ? nie wiem
« Ostatnia zmiana: 21 Marzec 2016, 18:17 wysłana przez jacek6663 »

*

Offline obcy12

  • *****
  • 226
  • 6
  • Płeć: Mężczyzna
  • Domyślny styl: Curve
  • Wersja SMF: 2.0.15
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #10 dnia: 21 Marzec 2016, 18:36 »
A w pliku index.css tego stylu dodałeś na końcu to co napisane.

*

Offline jacek6663

  • *****
  • 164
  • 2
  • Płeć: Mężczyzna
    • World of Consoles
  • Domyślny styl: DarkBreak
  • Wersja SMF: 2.0.11
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #11 dnia: 21 Marzec 2016, 19:54 »
tak  i pojawiają sie kwadraty białe

http://s2.ifotos.pl/img/screensho_swahrea.png
[MOD] SimplePortal - awatary na czacie

*

Offline jacek6663

  • *****
  • 164
  • 2
  • Płeć: Mężczyzna
    • World of Consoles
  • Domyślny styl: DarkBreak
  • Wersja SMF: 2.0.11
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #12 dnia: 22 Marzec 2016, 16:05 »
Dzięki za chęci i pomoc obcy12 jednak nic z tego nie wyszło no avatary są powiększone ale problem pozostał ten sam czyli przy napisaniu w sb i wysłaniu dalej białek kwadraty zamiast awatara po odświeżeniu strony awatary widoczne może ktoś jest w stanie jeszcze coś pomóc ?  :'(

*

Offline Adrian

  • *****
  • 5523
  • 723
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Adrek.pl
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #13 dnia: 10 Kwiecień 2016, 16:11 »
W pliku ./Themes/default/PortalShoutbox.template.php:
Kod: (Znajdź) [Zaznacz]
function template_shoutbox_xml()
{
global $context, $txt;
Kod: (Zamień na) [Zaznacz]
function template_shoutbox_xml()
{
global $context, $txt, $settings, $memberContext;

*

Offline jacek6663

  • *****
  • 164
  • 2
  • Płeć: Mężczyzna
    • World of Consoles
  • Domyślny styl: DarkBreak
  • Wersja SMF: 2.0.11
Odp: [MOD] SimplePortal - awatary na czacie
« Odpowiedź #14 dnia: 10 Kwiecień 2016, 17:10 »
phantom taki kawałeczek kodu i po sprawie dzięki ci wielkie
jeszcze małe pytanko jak zrobić żeby powiększyć awatary żeby ustawić tak jak na tym screenie
http://s2.ifotos.pl/img/screensho_swahrea.png
[MOD] SimplePortal - awatary na czacie