Latest topics
» Forumactif Edge - Releases
by Ange Tuteur Tue 03 Sep 2019, 11:49
» GIFActif - Giphy Button for the Editor
by Ange Tuteur Wed 08 May 2019, 17:21
» Forum Closure
by Ange Tuteur Mon 01 Jan 2018, 01:28
» Chit Chat Thread
by Valoish Sun 31 Dec 2017, 19:15
» Font/Text background color.
by Valoish Sun 31 Dec 2017, 19:11
» Forumactif Messenger - Instant Message Application for Forumotion
by Wolfuryo Sun 31 Dec 2017, 18:24
» [GAME] Count to One Million!
by brandon_g Fri 29 Dec 2017, 18:58
» Post Cards
by manikbiradar Wed 20 Dec 2017, 07:50
» [GAME] Countdown from 200,000
by Valoish Wed 13 Dec 2017, 23:22
» GeekPolice Tech Support Forums - GeekPolice.net
by Dr Jay Mon 11 Dec 2017, 19:12
» Asking about some plugin for Forumotion
by Dr Jay Mon 11 Dec 2017, 19:10
» [GAME] What are you thinking right now?
by Van-Helsing Sat 09 Dec 2017, 14:51
» Widget : Similar topics
by ranbac Wed 06 Dec 2017, 18:11
» Change the Background of the Forum and put an image and how to make prefixs?
by Clement Wed 06 Dec 2017, 15:19
» Hello from Western Australia
by SarkZKalie Wed 06 Dec 2017, 05:34
by Ange Tuteur Tue 03 Sep 2019, 11:49
» GIFActif - Giphy Button for the Editor
by Ange Tuteur Wed 08 May 2019, 17:21
» Forum Closure
by Ange Tuteur Mon 01 Jan 2018, 01:28
» Chit Chat Thread
by Valoish Sun 31 Dec 2017, 19:15
» Font/Text background color.
by Valoish Sun 31 Dec 2017, 19:11
» Forumactif Messenger - Instant Message Application for Forumotion
by Wolfuryo Sun 31 Dec 2017, 18:24
» [GAME] Count to One Million!
by brandon_g Fri 29 Dec 2017, 18:58
» Post Cards
by manikbiradar Wed 20 Dec 2017, 07:50
» [GAME] Countdown from 200,000
by Valoish Wed 13 Dec 2017, 23:22
» GeekPolice Tech Support Forums - GeekPolice.net
by Dr Jay Mon 11 Dec 2017, 19:12
» Asking about some plugin for Forumotion
by Dr Jay Mon 11 Dec 2017, 19:10
» [GAME] What are you thinking right now?
by Van-Helsing Sat 09 Dec 2017, 14:51
» Widget : Similar topics
by ranbac Wed 06 Dec 2017, 18:11
» Change the Background of the Forum and put an image and how to make prefixs?
by Clement Wed 06 Dec 2017, 15:19
» Hello from Western Australia
by SarkZKalie Wed 06 Dec 2017, 05:34
Recent Tutorials
Top posting users this month
Top Achievers
Who is online?
In total there are 70 users online :: 0 Registered, 0 Hidden and 70 Guests :: 2 Bots
None
Most users ever online was 515 on Tue 14 Sep 2021, 15:24
None
Most users ever online was 515 on Tue 14 Sep 2021, 15:24
[phpbb3] Like system that shows who liked a post
Page 1 of 3 • Share
Page 1 of 3 • 1, 2, 3
The content in this test is experimental, and all instructions SHOULD be READ and FOLLOWED. Failure to do so may cause unwanted side effects. USE WITH CAUTION !!
As many people want a like system to show who liked posts, I'll give you the chance to test it. You should know already that our forums do not have databases which we can interact with and the majority have no idea how to use a database. This plugin will make use of a topic as a database to store like information. This will require a group with moderation privileges. Before you continue, please take note of the following.
This test should help you achieve the following, if done correctly.
Creating a new table
To create a new table in your database, you first need to follow the installation process here : https://fmdesign.forumotion.com/t281-fa_db-database-installation
If you followed the tutorial above, paste the code below as the topic contents. Otherwise if you've already set your database up, click "edit database" and scroll down to the quick reply to add a new table.
Installation
So our like button has a style go to Administration Panel > Display > Colors > CSS stylesheet, and paste the following codes.
Finally the last part you've been waiting for, the like system. Create another script :
Title : fa_likes
Placement : In the topics
You must make sure to change the pid to your database table ID. To do that, edit the post which contains your like table, and copy / paste the following portion of the URL as the PID value.
When finished, it should look like the following, except a different ID.
Save the script, and it should now be setup if you followed all steps correctly !! Go like some posts and the database should then update with a new table row for posts that haven't been liked. When you visit posts, they should display who liked them if it's logged within the database.
If you have any questions or comments you may leave them below. Have fun with this experimental system !
As many people want a like system to show who liked posts, I'll give you the chance to test it. You should know already that our forums do not have databases which we can interact with and the majority have no idea how to use a database. This plugin will make use of a topic as a database to store like information. This will require a group with moderation privileges. Before you continue, please take note of the following.
- This was developed for phpbb3 and is not guaranteed to work on other versions
- The method to store data is not secure, and can be overwritten or deleted ( it's recommended to keep backups of DBs )
This test should help you achieve the following, if done correctly.
Creating a new table
To create a new table in your database, you first need to follow the installation process here : https://fmdesign.forumotion.com/t281-fa_db-database-installation
If you followed the tutorial above, paste the code below as the topic contents. Otherwise if you've already set your database up, click "edit database" and scroll down to the quick reply to add a new table.
- Code:
[table class="database_table" id="fa_likes"][tr][td]Post ID[/td][td]Users[/td][/tr][/table]
Installation
So our like button has a style go to Administration Panel > Display > Colors > CSS stylesheet, and paste the following codes.
- Code:
/* START fa_like */
.fa_like_row { margin-top:6px }
.fa_like_list { font-style:italic; min-height:25px; }
a.fa_like_button, .fa_like_button, .fa_liked { color:#FFF; font-size:10px; background:#6A6; border:1px solid #686; border-radius:3px; display:inline-block; padding:3px 6px; cursor:default; }
.fa_liked { cursor:default; opacity:0.3; }
a.fa_like_button:hover { background:#3A3; border:1px solid #383; cursor:pointer; }
/* END fa_like */
Finally the last part you've been waiting for, the like system. Create another script :
Title : fa_likes
Placement : In the topics
- Code:
$(function(){
var pid = 270,
i = 0,
lang = {
like : 'Like',
loading : 'Loading...',
people : 'People like this post.',
person : 'Person likes this post.'
};
$('.post').each(function() {
var plus = $(this).find('.vote-button:first a'), id = $(this).attr('id').slice(1), clear = $(this).find('.clear'), votes = 0, text = lang.people;
if (plus.length) clear.after('<div class="fa_like_row"><a class="fa_like_button" href="'+plus.attr('href')+'">'+lang.like+'</a></div>');
else clear.after('<div class="fa_like_row"><span class="fa_liked">'+lang.like+'</span></div>');
if ($(this).find('.vote-bar').length) {
votes = Number($(this).find('.vote-bar').attr('title').replace(/.*?\((\d+)\s.*/,'$1'));
if (votes == 1) text = lang.person;
}
$(this).find('.fa_like_row').append('<div class="fa_like_text">'+votes+' '+text+'</div><div class="fa_like_list" id="fa_like_list'+id+'">Loading...</div>');
$(this).find('.vote').remove();
i++;
if (i==$('.post').length) {
$.get(_database.tid, function(data) {
$('.post').each(function() {
var id = $(this).attr('id').slice(1), dblikes;
$('#fa_like_list'+id).html('');
if ($('#fa_likes #likes'+id,data).length) {
dblikes = $('#fa_likes #likes'+id,data).text().replace(/likes=\{(.*?)\}/,'$1').split(',');
for (var i=0; i<dblikes.length; i++) {
var comma = ', ';
if (i==dblikes.length-1) comma = '';
$('#fa_like_list'+id).append(dblikes[i].replace(/^(.*?):(.*?)$/,'<a href="/u$1">$2</a>'+comma))
}
}
});
});
}
});
$('.fa_like_button').on('click', function() {
var id = $(this).attr('href').replace(/^.*?p\_vote=(\d+)$/,'$1');
$(this).after('<span class="fa_like_button">'+lang.loading+'</span>').hide();
$.get($(this).attr('href'), function() {
_database.post({
pid : pid,
tableid : 'likes'+id,
update : ['\\[td id="likes'+id+'"\\]likes=\\{(.*?)\\}\\[/td\\]','[td id="likes'+id+'"]likes={$1,'+_userdata.user_id+':'+_userdata.username+'}[/td]'],
newRow : '[tr][td]t'+window.location.pathname.replace(/\/t(\d+).*/,'$1')+'p'+id+'[/td][td id="likes'+id+'"]likes={'+_userdata.user_id+':'+_userdata.username+'}[/td][/tr]',
reload : true
});
});
return false;
});
});
You must make sure to change the pid to your database table ID. To do that, edit the post which contains your like table, and copy / paste the following portion of the URL as the PID value.
When finished, it should look like the following, except a different ID.
- Code:
pid = 270,
Save the script, and it should now be setup if you followed all steps correctly !! Go like some posts and the database should then update with a new table row for posts that haven't been liked. When you visit posts, they should display who liked them if it's logged within the database.
If you have any questions or comments you may leave them below. Have fun with this experimental system !
Last edited by Ange Tuteur on Mon 16 Feb 2015, 00:45; edited 1 time in total
Yes, that's because it was developed on phpbb3. After I'm finished updating the database for v1.02 I'll optimize it for all versions.
The view count module is currently the first to work on all versions. Oh, and the shoutbox, when it's released with v1.02.
The view count module is currently the first to work on all versions. Oh, and the shoutbox, when it's released with v1.02.
- Luke SpikeNew Member
- Gender :
Posts : 9
Points : 3586
Reputation : 0
Location : Paradise
Language : English
Browser : Forum Version :
Does this work for PunBB too? If not can you give me the PunBB version code, many thanks.
At the moment this plugin is only for phpbb3. However, I will optimize it after the release of Database v1.02.Luke Spike wrote:Does this work for PunBB too? If not can you give me the PunBB version code, many thanks.
I know a lot of people want this feature, so It takes priority. I will probably start optimizations soon, since the database is almost ready. The shoutbox will follow shortly after...
- smejker
- Gender :
Posts : 28
Points : 3868
Reputation : 8
Location : Macedonia
Language : Macedonian, Serbo-Croatia
Browser : Forum Version :
This is nice...
I want to know... Is it any chanse to change like button with thanks button?
Thanks!
Regards & Respect!
I want to know... Is it any chanse to change like button with thanks button?
Thanks!
Regards & Respect!
You're referring to the text, correct ?smejker wrote:This is nice...
I want to know... Is it any chanse to change like button with thanks button?
Thanks!
Regards & Respect!
If so, you can modify the language object :
- Code:
lang = {
like : 'Like',
loading : 'Loading...',
people : 'People like this post.',
person : 'Person likes this post.'
};
Change or translate the texts to what you want.
@Michael_vx
Try replacing this :
By this :
Try replacing this :
- Code:
votes = Number($(this).find('.vote-bar').attr('title').replace(/.*?\((\d+)\s.*/,'$1'));
By this :
- Code:
votes = Number($(this).find('.vote-bar').attr('title').replace(/^(\d+).*/,'$1'));
I'll look over this when I work on optimizations.Michael_vx wrote:
nope
still the NaN appears
For reference NaN = Not a Number
I think it could be a problem with getting the number string from the title and converting it to a number in Arabic language. If there's a string that isn't a number character it would result in NaN.
For example :
- Code:
Number('10') // converts the string and returns a number
Number('Hello') // Returns NaN, because Hello isn't a number
- smejker
- Gender :
Posts : 28
Points : 3868
Reputation : 8
Location : Macedonia
Language : Macedonian, Serbo-Croatia
Browser : Forum Version :
I like this... So I wonderer, it's possible to make hidden content...
Like this:
and if users click on Thanks (Like) button, then the link cold be seen...
I think that be wonderful.
Regards & Respect!
Like this:
- Code:
You mast click Thanks (Like) to see link!
and if users click on Thanks (Like) button, then the link cold be seen...
I think that be wonderful.
Regards & Respect!
are you trying to burn the topic
i was thinking about something like that but i dont think its possible i think it might need custom layout
or lets see our Master Ange
im sure he can find a trick
because im a dumb bull
Since it's reliant on JavaScript, it wont be ideal. We would either have to hide the content by JavaScript or CSS. If by JavaScript, the content could be seen with JS disabled. If by CSS, the member wont be able to see the content with JS disabled even when they like the post.smejker wrote:I like this... So I wonderer, it's possible to make hidden content...
Like this:
- Code:
You mast click Thanks (Like) to see link!
and if users click on Thanks (Like) button, then the link cold be seen...
I think that be wonderful.
Regards & Respect!
You could perform a quick check in the liked users list to see if their username, or id is present. If not, the content will remain hidden. You can't use the default hide bbcode, because that requires a reply. Instead I'd recommend using a table with a classname. Like :
- Code:
[table class="hidden"][tr][td]Content here[/td][/tr][/table]
That's hidden by CSS.
- Code:
.hidden {
display:none;
visibility:hidden;
}
- GrowNew Member
- Gender :
Posts : 8
Points : 3671
Reputation : 2
Language : deutsch englisch
Browser : Forum Version :
And a new question
Is it possible to add an icon as like-button? For example:
For me its look better with an icon !
Is it possible to add an icon as like-button? For example:
For me its look better with an icon !
@Grow you should be able to make this modification via the language object. You'll have to use HTML like this :
You'll most likely have to remove some of the CSS because the green button may still be present.
@Michael_vx At the moment I've not started work on rewriting the like system, but it's on the list..
- Code:
lang = {
like : '
<img src="http://www.urologyatkumed.com/Repository/5/Image/Facebook-Like-Button.png" alt="Like"/>',
loading : 'Loading...',
people : 'People like this post.',
person : 'Person likes this post.'
};
You'll most likely have to remove some of the CSS because the green button may still be present.
@Michael_vx At the moment I've not started work on rewriting the like system, but it's on the list..
im guessing your list is a bit long list
at least you told me that you will
i can wait because i know coding is a ***** hard
for even just translating is bit hard and i get some falls in it since im a fast reader person so i miss some words while im reading xD reading a lot make me fell sleepy
at least you told me that you will
i can wait because i know coding is a ***** hard
for even just translating is bit hard and i get some falls in it since im a fast reader person so i miss some words while im reading xD reading a lot make me fell sleepy
- Sponsored content
Page 1 of 3 • 1, 2, 3
Similar topics
Create an account or log in to leave a reply
You need to be a member in order to leave a reply.
Page 1 of 3
Permissions in this forum:
You cannot reply to topics in this forum