Jump to content

Bottom Bar 1.0.1


Nuclear General

Recommended Posts

  • Replies 239
  • Created
  • Last Reply

Heres a little tutorial on how to get it running for Guests on your board.

Step 1: Open up FTP and go to Forums Dir -> admin -> applications_addon -> other -> bottombar -> sources -> hooks.php
Inside that file, Find:

if ( ! $this->member->getProperty('member_id') ) { return ''; }








Replace with:

/*if ( ! $this->member->getProperty('member_id') ) { return ''; }*/








Step 2: Go to ACP -> Look & Feel -> Select Skin -> skin_bottombar -> showBottomBar
Replace whole template bit with this (If you don't know what has been changed in my edits, just use the "Compare Differences Tool):
(This is based off the Original Template Bit Code)


<if test="$this->memberData['member_id']">

<!-- BEGIN MEMBER BAR -->

<php>

        $version        = IPSLib::fetchVersionNumber();

        $this->registry->class_localization->loadLanguageFile( array( 'public_lang' ), 'bottombar' );

</php>

<link rel="stylesheet" type="text/css"  href="{$this->settings['public_dir']}style_css/{$this->registry->getClass('output')->skin['_csscacheid']}/bottombar.css" />

<div id="footpanel">

    <ul id="mainpanel">

        <li><a href="{parse url="" base="public"}" class="home">{$this->lang->words['bb_tab_home']} <small>{$this->lang->words['bb_tab_gohome']}</small></a></li>

        <li><a href="{parse url="showuser={$this->memberData['member_id']}" base="public" seotitle="{$this->memberData['members_seo_name']}" template="showuser"}" class="profile">{$this->lang->words['bb_tab_vp']} <small>{$this->lang->words['bb_tab_vp']}</small></a></li>

        <li><a href="{parse url="app=core&amp;module=usercp" base="public"}" class="editprofile">{$this->lang->words['bb_tab_ep']} <small>{$this->lang->words['bb_tab_ep']}</small></a></li>

        <if test="$this->memberData['has_blog'] AND IPSLib::appIsInstalled( 'blog' )">

                <li><a href="{parse url="app=blog&amp;module=display&amp;section=blog&amp;mid={$this->memberData['member_id']}" base="public"}" class="blog">{$this->lang->words['bb_tab_yb']} <small>{$this->lang->words['bb_tab_yb']}</small></a></li>

        </if>

        <if test="$this->memberData['has_gallery'] AND IPSLib::appIsInstalled( 'gallery' )">

                <li><a href="{parse url="app=gallery&amp;module=user&amp;section=user&amp;user={$this->memberData['member_id']}" base="public"}" class="gallery">{$this->lang->words['bb_tab_yg']} <small>{$this->lang->words['bb_tab_yg']}</small></a></li>

        </if>


        <if test="$version['long'] >= 31000">

                <li id="alertpanel">

                        <a href="#" class="alerts" id='alert-link' title='Alerts'>{$this->lang->words['bb_tab_alerts']}</a>

                        <div class="subpanel" style='display:none;'>

                                        <h3><span> &ndash; </span>Notifications</h3>

                                        <ul>

                                                <li class="view"><a href="#">View All</a></li>

                                                <li>

                                                        <a href="#" class="delete">X</a>

                                                        <p><!--Content--></p>

                                                </li>

                                                <li>

                                                        <a href="#" class="delete">X</a>

                                                        <p><!--Content--></p>

                                                </li>

                                        </ul>

                                </div>

                </li>

            </if>


        <li id="favoritepanel">

                <a href="#" class="favorites" id='favorites-link' title='{$this->lang->words['bb_tab_favs']}'>{$this->lang->words['bb_tab_favs']}</a>

                <div class="subpanel" style='display:none;'>

                                <h3><span> &ndash; </span>{$this->lang->words['bb_bookmarks']}</h3>

                                <ul id='favorites-bb'>

                                        <li class="view"><a href="#" id='add-favorite-link'>{parse replacement="approve"} {$this->lang->words['bb_addpage']}</a></li>

                                </ul>

                        </div>

        </li>

        <li id="friendpanel">

                <a href="#" class="friends" id='friends-link' title='{$this->lang->words['bb_tab_friends']}'>{$this->lang->words['bb_tab_friends']}</a>

                <div class="subpanel" style='display:none;'>

                                <h3><span> &ndash; </span>{$this->lang->words['bb_tab_friends']}</h3>

                                <if test="is_array($this->memberData['_cache']['friends']) AND count($this->memberData['_cache']['friends'])">

                                        <php>

                                                $friends        = array();

                                                $mIds                = array_keys( $this->memberData['_cache']['friends'] );

                                                $friends        = IPSMember::load( $mIds );

                                                $onlineF        = array();

                                                $offlineF        = array();

                                                if( is_array($friends) AND count($friends) )

                                                {

                                                        foreach( $friends as $k => $v )

                                                        {

                                                                $member = IPSMember::buildDisplayData( $v );


                                                                if( $member['_online'] )

                                                                {

                                                                        $onlineF[]        = $member;

                                                                }

                                                                else

                                                                {

                                                                        $offlineF[]        = $member;

                                                                }

                                                        }

                                                }


                                                $this->friends        = array_merge( $onlineF, $offlineF );

                                        </php>

                                <ul>

                                    <li class='view'><a href='{parse url="app=members&amp;module=profile&amp;section=friends&amp;do=list" base="public"}'>{$this->lang->words['bb_friendlist']}</a></li>

                                    <foreach loop="$this->friends as $member">

                                            <li class='friend'>

                                                    <div class="online-indicator">

                                                            <img src='{$this->settings['img_url']}/bottombar/<if test="$member['_online']">online.png<else />offline.png</if>' alt='<if test="$member['_online']">online<else />offline</if>' title='<if test="$member['_online']">{$this->lang->words['bb_useronline']}<else />{$this->lang->words['bb_useroffline']}</if>' />

                                                    </div>

                                                    <a href="{parse url="showuser={$member['member_id']}" base="public" seotitle="{$member['members_seo_name']}" template="showuser"}"><img src='{$member['pp_mini_photo']}' alt="{$member['members_display_name']}{$this->lang->words['users_photo']}" width='{$member['pp_mini_width']}' height='{$member['pp_mini_height']}' class='photo' /> {$member['members_display_name']}</a>

                                            </li>

                                    </foreach>

                                </ul>

                                <else />

                                        <p class='center'><a href='{parse url="app=members" base="public"}'><em>{$this->lang->words['bb_ff']}</em></a></p>

                                </if>

                        </div>

        </li>

        <li id="pmpanel">

                <a href="#" class="pms" id='pm-link' title='{$this->memberData['msg_count_new']}{$this->lang->words['pc_suffix']}'>{$this->lang->words['bb_tab_inbox']} (<strong>{$this->memberData['msg_count_new']} {$this->lang->words['bb_pc_new']}</strong>)</a>

                <div class="subpanel" style='display:none;'>

                                <h3><span> &ndash; </span>{$this->lang->words['bb_tab_pct']}</h3>

                                <ul id='private-message-list-bb'>

                                        <li class="view"><a href="{parse url="app=members&amp;module=messaging" base="public"}">{$this->lang->words['bb_viewall']}</a></li>

                                </ul>

                        </div>

        </li>

    </ul>

</div>

<script type='text/javascript' src='{$this->settings['public_dir']}js/bottombar.js'></script>

<script type='text/javascript'>

var bbzfavs        = "{$this->lang->words['bb_zfavs']}";

</script>

<!-- END MEMBER BAR -->

<else />

<!-- BEGIN GUEST BAR -->

<php>

        $version        = IPSLib::fetchVersionNumber();

        $this->registry->class_localization->loadLanguageFile( array( 'public_lang' ), 'bottombar' );

</php>

<link rel="stylesheet" type="text/css"  href="{$this->settings['public_dir']}style_css/{$this->registry->getClass('output')->skin['_csscacheid']}/bottombar.css" />

<div id="footpanel">

    <ul id="mainpanel">

        <li><a href="{parse url="" base="public"}" class="home">{$this->lang->words['bb_tab_home']} <small>{$this->lang->words['bb_tab_gohome']}</small></a></li>

        <if test="$this->memberData['member_id']">

        <li><a href="{parse url="showuser={$this->memberData['member_id']}" base="public" seotitle="{$this->memberData['members_seo_name']}" template="showuser"}" class="profile">{$this->lang->words['bb_tab_vp']} <small>{$this->lang->words['bb_tab_vp']}</small></a></li>

        <li><a href="{parse url="app=core&amp;module=usercp" base="public"}" class="editprofile">{$this->lang->words['bb_tab_ep']} <small>{$this->lang->words['bb_tab_ep']}</small></a></li>

        </if>

        <if test="$this->memberData['has_blog'] AND IPSLib::appIsInstalled( 'blog' )">

                <li><a href="{parse url="app=blog&amp;module=display&amp;section=blog&amp;mid={$this->memberData['member_id']}" base="public"}" class="blog">{$this->lang->words['bb_tab_yb']} <small>{$this->lang->words['bb_tab_yb']}</small></a></li>

        </if>

        <if test="$this->memberData['has_gallery'] AND IPSLib::appIsInstalled( 'gallery' )">

                <li><a href="{parse url="app=gallery&amp;module=user&amp;section=user&amp;user={$this->memberData['member_id']}" base="public"}" class="gallery">{$this->lang->words['bb_tab_yg']} <small>{$this->lang->words['bb_tab_yg']}</small></a></li>

        </if>


        <if test="$this->memberData['member_id']">

        <if test="$version['long'] >= 31000">

                <li id="alertpanel">

                        <a href="#" class="alerts" id='alert-link' title='Alerts'>{$this->lang->words['bb_tab_alerts']}</a>

                        <div class="subpanel" style='display:none;'>

                                        <h3><span> &ndash; </span>Notifications</h3>

                                        <ul>

                                                <li class="view"><a href="#">View All</a></li>

                                                <li>

                                                        <a href="#" class="delete">X</a>

                                                        <p><!--Content--></p>

                                                </li>

                                                <li>

                                                        <a href="#" class="delete">X</a>

                                                        <p><!--Content--></p>

                                                </li>

                                        </ul>

                                </div>

                </li>

            </if>


        <li id="favoritepanel">

                <a href="#" class="favorites" id='favorites-link' title='{$this->lang->words['bb_tab_favs']}'>{$this->lang->words['bb_tab_favs']}</a>

                <div class="subpanel" style='display:none;'>

                                <h3><span> &ndash; </span>{$this->lang->words['bb_bookmarks']}</h3>

                                <ul id='favorites-bb'>

                                        <li class="view"><a href="#" id='add-favorite-link'>{parse replacement="approve"} {$this->lang->words['bb_addpage']}</a></li>

                                </ul>

                        </div>

        </li>

        <li id="friendpanel">

                <a href="#" class="friends" id='friends-link' title='{$this->lang->words['bb_tab_friends']}'>{$this->lang->words['bb_tab_friends']}</a>

                <div class="subpanel" style='display:none;'>

                                <h3><span> &ndash; </span>{$this->lang->words['bb_tab_friends']}</h3>

                                <if test="is_array($this->memberData['_cache']['friends']) AND count($this->memberData['_cache']['friends'])">

                                        <php>

                                                $friends        = array();

                                                $mIds                = array_keys( $this->memberData['_cache']['friends'] );

                                                $friends        = IPSMember::load( $mIds );

                                                $onlineF        = array();

                                                $offlineF        = array();

                                                if( is_array($friends) AND count($friends) )

                                                {

                                                        foreach( $friends as $k => $v )

                                                        {

                                                                $member = IPSMember::buildDisplayData( $v );


                                                                if( $member['_online'] )

                                                                {

                                                                        $onlineF[]        = $member;

                                                                }

                                                                else

                                                                {

                                                                        $offlineF[]        = $member;

                                                                }

                                                        }

                                                }


                                                $this->friends        = array_merge( $onlineF, $offlineF );

                                        </php>

                                <ul>

                                    <li class='view'><a href='{parse url="app=members&amp;module=profile&amp;section=friends&amp;do=list" base="public"}'>{$this->lang->words['bb_friendlist']}</a></li>

                                    <foreach loop="$this->friends as $member">

                                            <li class='friend'>

                                                    <div class="online-indicator">

                                                            <img src='{$this->settings['img_url']}/bottombar/<if test="$member['_online']">online.png<else />offline.png</if>' alt='<if test="$member['_online']">online<else />offline</if>' title='<if test="$member['_online']">{$this->lang->words['bb_useronline']}<else />{$this->lang->words['bb_useroffline']}</if>' />

                                                    </div>

                                                    <a href="{parse url="showuser={$member['member_id']}" base="public" seotitle="{$member['members_seo_name']}" template="showuser"}"><img src='{$member['pp_mini_photo']}' alt="{$member['members_display_name']}{$this->lang->words['users_photo']}" width='{$member['pp_mini_width']}' height='{$member['pp_mini_height']}' class='photo' /> {$member['members_display_name']}</a>

                                            </li>

                                    </foreach>

                                </ul>

                                <else />

                                        <p class='center'><a href='{parse url="app=members" base="public"}'><em>{$this->lang->words['bb_ff']}</em></a></p>

                                </if>

                        </div>

        </li>

        <li id="pmpanel">

                <a href="#" class="pms" id='pm-link' title='{$this->memberData['msg_count_new']}{$this->lang->words['pc_suffix']}'>{$this->lang->words['bb_tab_inbox']} (<strong>{$this->memberData['msg_count_new']} {$this->lang->words['bb_pc_new']}</strong>)</a>

                <div class="subpanel" style='display:none;'>

                                <h3><span> &ndash; </span>{$this->lang->words['bb_tab_pct']}</h3>

                                <ul id='private-message-list-bb'>

                                        <li class="view"><a href="{parse url="app=members&amp;module=messaging" base="public"}">{$this->lang->words['bb_viewall']}</a></li>

                                </ul>

                        </div>

        </li>

        </if>

    </ul>

</div>

<script type='text/javascript' src='{$this->settings['public_dir']}js/bottombar.js'></script>

<script type='text/javascript'>

var bbzfavs        = "{$this->lang->words['bb_zfavs']}";

</script>

<!-- END GUEST BAR -->

</if>



And there you have it, a guest bar as well!

Good luck with it! :)

Link to comment
Share on other sites


as I am working on [url="

new product![/url] ^_^


Also, if you want, if you can let me know what you want on the bar, I can do the changes for you on my localhost and then just post the changes that reflect your needs. Just lemme know! :)




Dead link, and your bar looks great - well done. :)
Link to comment
Share on other sites

The link isn't dead. It hasn't been approved yet. Anyway, thanks! :D I'm currently trying to add an IP.Chat count to the bar and make it float right, but the float isn't working. I can't figure out why. But other than that, the count works fine. BTW, FYI, the count is coming from Michael's IP.Chat Active Users in Header mod, just so I let everyone know that I didn't actually make the code for it.

post-77917-126826150512_thumb.png

Link to comment
Share on other sites


I'd recommend adding an ACP page so people don't assume there's a bug. Also, be nice to choose which groups can (can't) access it. Like banned/suspended members. Letting the admin change the default links (or at least be able to add a couple of more links) would be nice.



Just installed it and waiting to see what others think of it.



Could an "apps" menu be added that would act like a 'start' menu? :D




An ACP page with what on it? There are no settings or anything ACP-controllable at this time, so it would simply be a dummy page. I'm tempted to put one up now and just put on it "cuz Wolfie said so". :lol:

Start menu would be do-able I suppose.



I've edited mine somewhat drastically because I've edited some of the CSS and added some new links and created some new language bits. What do you think of it (I think it looks great though ^_^):





I like it. :)

What I really like is seeing people take what I've done and expand on it and do other stuff with it.


I'm going to 'extract' the favourites section and put it into my new skin directly. Very nice work on this, Brandon!




Go for it. Let me know if you have any questions (you have my AIM).


Would be cool to have it running here.




I did this independent of IPS (at home, in my spare time). It's not something officially sanctioned, and I don't think you'll see it added here because it would potentially give users the wrong impression (that it's a default feature, or an officially supported feature, when it isn't).
Link to comment
Share on other sites


An ACP page with what on it? There are no settings or anything ACP-controllable at this time, so it would simply be a dummy page. I'm tempted to put one up now and just put on it "cuz Wolfie said so". :lol:



Meany. <_<

:lol: Okay being serious though, even a dummy page announcing that it's been installed and a comment that there's really no settings to change (thus the Apps/Bar page is there 'just because') then people would know that it's working fine and there aren't any bugs.
Link to comment
Share on other sites

Great addon I made a few changing like extending the bar to 100% width and I made it hide all offline friends if anyone wants to know how to do it change


<li class='friend'>

to


<li class='friend' <if test="$member['_online']"><else />style='display:none;'</if>>


I know its probably not the best way to do it but it was the first thing that popped into my head.

Link to comment
Share on other sites



<li class='friend' <if test="$member['_online']"><else />style='display:none;'</if>>

I think you can do


<li class='friend' <if test="! $member['_online']">style='display:none;'</if>>



Which removes the <else /> statement. :) Can't guarantee that it'll work like that, but I know you can usually negate/reverse the result but using ! (to say if it's NOT set/equal to).

Link to comment
Share on other sites


An ACP page with what on it? There are no settings or anything ACP-controllable at this time, so it would simply be a dummy page. I'm tempted to put one up now and just put on it "cuz Wolfie said so". :lol:



Start menu would be do-able I suppose.



Sounds great! :lol: And the Wolfie section would make the ACP dummy page "stand out". :lol: No offense though. ^_^


I like it. :)



What I really like is seeing people take what I've done and expand on it and do other stuff with it.



Thanks! ^_^ It took me a bit to figure out how to expand the Bubble popup, but I finally figured out that I had to expand the Bubble popup in my Adobe CS2, then change the width in the CSS. But overall, it turned out better than what I first intended it to be. :lol:


I did this independent of IPS (at home, in my spare time). It's not something officially sanctioned, and I don't think you'll see it added here because it would potentially give users the wrong impression (that it's a default feature, or an officially supported feature, when it isn't).



Why not make it a default feature, and have it configurable for an On/Off setting in the ACP? That would possibly bring in more potential customers because it is almost a Facebook type bottom bar.
Link to comment
Share on other sites


I think you can do



<li class='friend' <if test="! $member['_online']">style='display:none;'</if>>



Which removes the <else /> statement. :) Can't guarantee that it'll work like that, but I know you can usually negate/reverse the result but using ! (to say if it's NOT set/equal to).


Thanks Wolfie btw you didn't need to explain what ! means I am a web developer I just haven't seen this style of coding which looks like php but isn't in php tags lol it confuses me :<
Link to comment
Share on other sites


Sounds great! :lol: And the Wolfie section would make the ACP dummy page "stand out". :lol: No offense though. ^_^



%7Boption%7D
:lol:
Any idea who the troll is giving out neg reps on people?



Thanks Wolfie btw you didn't need to explain what ! means I am a web developer I just haven't seen this style of coding which looks like php but isn't in php tags lol it confuses me :<



I wasn't sure. Wasn't telling it to you to insult your intelligence, but more to explain it in case you didn't already know.
Link to comment
Share on other sites


Sounds great! :lol: And the Wolfie section would make the ACP dummy page "stand out". :lol: No offense though. ^_^



[img]

[/img]


:lol:


Any idea who the troll is giving out neg reps on people?



That would be Achmed the Dead Terrorist and I wasn't trying to sound rude... it was just a joke.



I know, that's why I put up Achmed as a respond to what you said. I was starting to say "I kill you!" but wasn't sure if you'd get the reference and know I was kidding. After not finding any Achmed emoticons, I figured it'd be best to use a picture with the words in it. :)


The part of the troll giving neg reps, your post had a -1 on it and I couldn't see a reason why someone would do it.
Link to comment
Share on other sites


And you click a control panel application that does not work


and u can put chat in the bar?




No ACP page has been brought up. Read the rest of this topic.

Chat will not be integrated into the bar. It's not possible with IP.Chat at present and I'm not coding a home-brewed chat solution just for this addon.
Link to comment
Share on other sites


The part of the troll giving neg reps, your post had a -1 on it and I couldn't see a reason why someone would do it.



I know I gave Matt a -1 the other day by mistake - on a smartphone it is very close between + and - - in any even negative rep has to be more than one person due to the limit.


Trying to not go off topic (much), I had noticed someone gave NG a neg rep. Seems like a few people are targeted for receiving the dastardly negs and I find it rather childish that several people have nothing better to do with their time than to neg rep a person rather than content. I didn't find anything in his post that seemed worthy of a neg rep, so thus the question.
Link to comment
Share on other sites


Trying to not go off topic (much), I had noticed someone gave NG a neg rep. Seems like a few people are targeted for receiving the dastardly negs and I find it rather childish that several people have nothing better to do with their time than to neg rep a person rather than content. I didn't find anything in his post that seemed worthy of a neg rep, so thus the question.




I don't know either. To me, it just seems that every post I make the IPS forums, someone has to "neg rep" me for no apparent reason. It's weird. <_< :blink:

Back on topic... I'm trying to add the Facebook Connect button to the bottom bar. Hopefully I can achieve it without error... we'll see. :lol:
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...