SimplePortal

Support => English Support => Topic started by: player.samp on April 07, 2014, 03:20:05 PM

Title: How to colorize Guest shouts
Post by: player.samp on April 07, 2014, 03:20:05 PM
Hello.

I have found out how to edit/delete/create messages via the database, and I still have one more question.

In case I want to make a shout from a guest, I make the user ID as 0 and then choose the name (for example: 'Administrator'), and it will show it as black color. How can I change it to red, etc? It does not let me use HTML code for the name.
Title: Re: How to colorize Guest shouts
Post by: AngelinaBelle on April 08, 2014, 09:22:03 AM
I hope I understand your question.  I have changed the subject to reflect your question.
Please pick a new subject if this is incorrect, and let me know also if I have misunderstood.

You are making some customization to the shoutbox code to allow guest to shout?
And you want every guest shout to look as though it comes from administrator? Not from "guest"?

If you look through the code, you will see that both php and javascript are involved in displaying shouts.  So let's look first in subs-portal, in function sportal_get_shouts.
You can see that the color of the name is controlled by         
Code: [Select]
$online_color = !empty($row['member_group_color']) ? $row['member_group_color'] : $row['post_group_color'];I believe guest is not in _members, so that the joins to membergroups are going to bring back null values for both member_group_color and post_group_color (is that correct?)

The easiest possible solution I can think of is to hard-code a color for guest.  Is puce one of the CSS color codes?  I can't remember.  In any case, pick one you like.
Code: [Select]
$online_color = ($row['id_member'] == 0 ) ? $online_color = 'puce' :
   (  !empty($row['member_group_color']) ? $row['member_group_color'] : $row['post_group_color']  );
Title: Re: How to colorize Guest shouts
Post by: player.samp on April 08, 2014, 10:59:53 AM
You are making some customization to the shoutbox code to allow guest to shout?
And you want every guest shout to look as though it comes from administrator? Not from "guest"?

Allowing to guests to shout? Not at all. I think that I have done everything I can to block guests from viewing the forum. To do anything, they must login or register.

I just want option to edit the color of a shout, when the user ID is 0 (non existing user, which can be because the user was deleted OR I just created a shout via the database).

Here is an example:

(http://i.imgur.com/nftF7IP.png)

The info thing is not a user. So I thought that the one who did it, created a shout via the database with the user ID 0 (so it won't link to any profile), and just changed the color of the name. When I tried to do it, it didn't work.

But when I did F12 to check the script of the page, I found out that he did it via <li> or <div> what means that he scripted it by himself (probably), and I don't really know how to script well...
Title: Re: How to colorize Guest shouts
Post by: AngelinaBelle on April 08, 2014, 12:26:39 PM
OK.  You do not have guests shouting, but you want to decorate things very specially if the shout is not from someone on the database.

This should not be difficult to do.  Again, you want to look in sportal_get_shouts.


First, register a member to be the source of these "info" shouts, and take note of this special member id (if you want to go on using member id is 0, you can do that, as well), and use this member_id when you create those "database shouts".  This will distinguish your INFO SHOUTER  messages from any deleted members' old shouts.


Where you see "SPECIAL_INFO_ID" below, you should replace this with the member id you use for your special info shouts, use a php constant, use a php variable -- whatever you want to use to get that value in there.


Yes, this all sounds pretty kludgy, but once you get it working, I am sure you can come up with some code improvements.  Warning: this code is completely untested and might contain some php errors.  Good Luck and have fun!

Code: (find) [Select]
foreach ($shouts as $shout)
{

Code: (replace) [Select]
foreach ($shouts as $shout)
{
            if  ($shout['author']['id'] = SPECIAL_INFO_ID ) {
                  $shouts[$shout['id']]['author']['link'] = '<span style="color: blue;">**</span><span style="color: red;">|INFO|</span><span style="color: red;">**' ; }

Title: Re: How to colorize Guest shouts
Post by: player.samp on April 08, 2014, 12:34:12 PM
I am sure you can come up with some code improvements.

Well... I have no past knowledge of experience with scripting and only this year at school I started studying scripting...

I study C# and I get in the tests about 60% - 70% or something like that... And I also studied HTML and Javascript but not in a level when I can script what I want, only in a level of going to the internet and copying what is needed... :/

Anyway, it is not that important. I thought that I can do it easily via the database but then I found out that I was wrong... So this case is kind of solved..


Thank you very much for the support anyway. :D ;/
Title: Re: How to colorize Guest shouts
Post by: AngelinaBelle on April 08, 2014, 01:54:23 PM
Then I will mark this solved.
It would actually be a good exercise for you as you develop your coding skills.
So if you choose to return to it some day, the customization board is probably the best place to play.

Enjoy!
SimplePortal 2.3.8 © 2008-2024, SimplePortal