News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

MyStatus Update Mod (beta) - a social network extension for SMF 2.0

Started by ElectricSquid, October 15, 2009, 02:14:01 PM

Previous topic - Next topic

Chair


akl

Will this be available for 1.1.10? :s
And today is the expected release (1st), am I right? ;D

sangwe11

Quote from: ∑£ℓ¢†®¡¢ §ợų¡đ on November 07, 2009, 11:18:25 PM
Quote from: sangwe11 on November 07, 2009, 01:59:28 PM
Any chance of a screenshot now ?

Only takes a second to do :D

I'm interested to see how you've layed the pages out

Sure, as soon as I stop improving it ;D

Haha xD

Just take one, even if you change it (as I often do when I give out screenshots) it just gives us an idea of how it might be.

We can then feedback if any changes are needed ect .. :D

ElectricSquid

#43
There are still minor tweaks needed for the layout.
Oh, and I need to test it on the god-awful IE. It looks good in Safari and Firefox, but IE is such a pain in the butt.

Img 1 - shows some simple posting back and forth. Also gives a peak at the buttons on the right, like
  • MyPosts, brings you to a page with only that users posts (users who are friends and self)
  • Add/Remove Me, the add or remove from friends list button (all logged users excluding self)
  • Spam**, the report to moderator button (all logged users excluding self)
  • Delete Post, gives the poster the option to remove what they wrote (post owner only)

    Img 2 - shows the simple (as of now) Status Update form for posting new updates (topics)

    Img 3 - shows the bottom of the page with page numbers to older posts.


    ** NOTE: The report to moderator button works just like everywhere else on the forum. In the Moderate Section, the links to MyStatus topics WILL bring you (the admin or moderator) to the normal board view, where all moderator actions can be done. All others are locked out from normal board view.

    Why this matters?
    ALL normal forum links to the MyStatus board are non-existant for normal users. Normal users must use the provided MyStatus Mod links that lead to MyStatus pages.
    This is this way so the MyStatus board does not show on the BoardIndex page, Unread Posts page, Unread Replies page, Search pages, Jumpto menus, and no email notifications are sent. This is because these actions would give the normal user a back door to the normal forum view for the MyStatus Mod.

ElectricSquid

Quote from: impennetrate on November 08, 2009, 03:51:35 AM
possible to include a relationship status? XD

Possibly for MyStatus 2.0
At this point, I'm just trying to get this first version out the door and available.

GQCritic

Wow!


I've been looking for a this type of mod for quite a while now.

Thank you for the time and effort which you are putting into it.

I'm really excited about its release.

:)

ElectricSquid

#46
I apologize for delays in the first release.
I MUST be sure it is stable, and this mod covers a lot of ground when it comes to the functions involved. To put it simply, anything involved in posting a normal topic to the forum, is covered, or disabled for the board this mod uses. But don't be scared off by that, the code edits are quite small, I made sure of that.

Anyway, my next post in this topic will be to announce the code is available.

Oh, MyStatus Mod is coded for SMF 2.0 RC1.2 at this time.
There will probably be minor code changes needed for SMF 2.0 RC2 because of the addition of the Curve theme as default. Because of this, I am holding back the official install package for RC2.

The first un-official release will be manual install only for RC1.2 see edit below, and will be use at your own risk, on non-production sites, for testing and bug reporting, since it'll still be in BETA.

EDIT I found out that building the install package is WAY easier than writing up the manual install instructions, so the first Un-Official release will be a full, working install package for SMF2.0 RC2. The ONLY differences between RC1.2 and RC2 for this package is the second edit in Search.php does not exist in RC1.2, and the position of the Status Update Form in index.template.php is different in RC2 due to the Curve theme.
End EDIT

SMF 1.1.x support will not be available until at the very least, MyStatus Mod 2.0 is released. But I do not guarantee there will be 1.1.x support, because of the unknown to me differences in SMF2.0 and 1.1.x






LOL, this is my 420th post on the SMF forum :P

Chair

So far, looking breathtaking! 1.0 hasn't come out yet and I'm already waiting for the sequel. Haha.

Arantor


ElectricSquid

I'm pleased to announce that MyStatus Update Mod version 1.0 is complete.
The un-official install package of version one is available, and attached to the first post of this topic.

This un-official release is for beta testing ONLY.
I will be submitting this package for SMF review, and I would suggest that anyone without extensive coding knowledge, please wait for the Official Mod Site approved version to come out. I'll post a link for that as soon as it does.

For the rest of you who aren't scared of the code :P, visit the first post of this topic for a copy of MyStatus_Update mod version 1

SoLoGHoST

Hello ElectricSquid, had a few minutes and ran your mod through a quick test run and here's are my results (ofcourse, this was just a small test run of mine, putting it through a much more vigorous test will take more time)...

PROBLEMS/BUGS Noticed:

  • I can't seem to see any of my boards on the Forum page after installing this mod.  Wiped out my forum Board called General Discussion (SMF's default board) which was the only forum board I had within the forum area of SMF.  Please Note - The board is still functional as all of the topics link to it and are able to get to it through the topic/post links, however, the boards just isn't visible from the index.php page.  This could be that I have a portal system installed, so not sure if this would be causing the problem or not.

SUGGESTIONS:

  • Updating your status should not create a topic on it.  Otherwise your forum will be overrun by topics with nothing useful it them.  I recommend creating a table similiar to the messages table and/or topics table of SMF and control it separately so that it has no effect over the actual posts within the forum (since, supposed to be a status update and seems to me that it can also be private).

  • If you still want to use the SMF messages/topics table for updating users status after reading suggestion noted above, than atleast allow the administrator the option of where these updates get posted, such as, what board will hold the status updates.


  • An Administration Panel and Permissions is needed for this mod.  I haven't seen these anywhere for this mod.

  • The pagination text at the bottom is too big IMO.  Making this smaller would look better.  On the opposite side of this, there is the icons to the top-right of each posted status - too small and would look better a bit bigger (why not go with the default size of these images when viewing forum posts?).


  • Since this is on curve, why not have a curve on the corners of each comment/status message??  Would look much better IMO.


  • Get rid of the [ Write Comment ], change it so it is Write Comment without the brackets.  Just looks dumb with the brackets IMO, though I can understand how it sort of gives it a sense of urgency, but you can accomplish this with images instead of a button if you'd like and would be way cooler.  Ofcourse this is just my opinion though.


  • Change "What are you thinking right now?" to "Update your Status", unless that is supposed to be a way to post instead of updating your status, or both.

COMMENTS:

  • I like the way you have laid out the way the posts get created.  That is kinda like the same way Deviant Art does their layout for posts/and replies.  Looks like a good amount of thought and energy was put into this and very nicely done.  The only thing that would make it better is, if it were curved as I mentioned in the suggestions.

Cheers and was a bit of fun testing this for you.  Though biggest problem I see is that it removed my board "General Discussion", you should look into this deeply.  I would if it were my mod.

SoLoGHoST

ElectricSquid

Thanks SoLoGHoST, you're helping me address some of what will be the most common questions asked from users installing this mod. The below text is what I'm working on to add to the lower part of the description for this mod on the Mod Site's page.


What you should know before installing this mod

The MyStatus Board
MyStatus_Updates mod connects to "board 1" by default, which is Open Discussions. On install you will notice that the board MyStatus_Updates mod uses will disappear from normal view on your forum. This is not a bug, this is by design. MyStatus_Updates mod has it's own menu button that connects users to the MyStatus Updates pages.

The removal of the MyStatus board from normal view is to eliminate users access to the MyStatus board through any "back doors". The board MyStatus_Updates uses is changable, I'll explain that lower down when I cover the Admin Settings location.

MyStatus_Updates mod removes view of the MyStatus Board for these following pages or features:
  • BoardIndex
  • Search
  • Search2
  • Recent
  • Unread
  • UnreadReplies
  • Notify
  • JumpTo

Moderator Access
The only back door left open is through Moderation Center » Reported Posts and this is so moderators and admins have full access to all their cool forum administration options, even for MyStatus_Updates mod. This is one of the big reasons I used existing SMF database tables and existing SMF topics and replies coding to create MyStatus_Updates Mod.

The following admin features exist for MyStatus:
  • Split topic
  • Lock Topic
  • Move Topic
  • Remove Topic
  • Merge Topic
  • and any other topics and replies feature normal boards have

Admin Settings
The board MyStatus uses IS changable. Go to the MyStatus language file located in Themes/default/languages/MyStatus.english.php
ALL the Admin Settings are there with full explanations of how they work, and what the default settings are.

You can change:
  • The MyStatus board number
  • Amount of Status Updates per page
  • Avatar size (for Updates and replies separately, 2 settings)
  • Wording on all the buttons
  • Wording above the status update form

Permissions
Permissions are simple for this mod.

Guests access:
  • everyone page (action=everyone) with ALL buttons removed

Members access:
  • View all MyStatus pages
  • Status Updates form shows at top of forum pages
  • Ability to Post & Reply
  • All MyStatus buttons show

Error Messages
If you are a guest, or a member with no friends or Status Updates, you may receive an error message depending on what page you are trying to visit or what action you are trying to do. The text to these various error messages is informative to the user, but can be changed to suit your website better if you feel the need.
Go to Themes/default/languages/MyStatus.english.php where the MyStatus Admin Settings are located and you will find the error message section clearly marked toward the bottom of the file.

Uninstall
After uninstall, you will find a few MyStatus language errors in the error log. This is because the Status Update Form shows at the top of the page during the uninstall. These errors are one time only, and will not show again. So don't worry, this is normal and there is nothing wrong with your forum.

ElectricSquid

@SoloGhost

What do you mean when you said this...
QuotePlease Note - The board is still functional as all of the topics link to it and are able to get to it through the topic/post links

As stated above, the board MyStatus uses is made invisable through ALL normal means. This is by design, to not allow any access to this board in normal forum view (for non-moderator members).

Now the last art of that quote states that you found a way to the topics. Was this on a certian page that I missed blocking the MyStatus board on, or through direct URL links?

If it was through a page/function, please let me know which one, because it needs to be disabled for the MyStatus board number (which is controled through the admin settings as stated above).

SoLoGHoST

Ok, like I said, I had a Portal System installed when testing your mod.  The portal system has a module for listing Recent Topics/Posts and linking to them.  There is no way you can completely hide a post/topic from these portals, as they are built for this sort of thing.  Simply hiding the board from view on the board index of SMF is, not only a Bad Coding Judgement on your part, but will also frustrate users as they could very well be using BOARD id of #1 as a very important board, that once your mod gets installed, becomes invisible/inaccessible.  Though linking to it will work as the board still exists. This is why I suggested having your own table in the database for this mod.  Yes, it's kinda taking a step back from what you've already done, but sometimes, taking a step back is not a bad move, so that your next step forward would be a better move than the previous steps you've made.  Trust me, no one wants to see their boards disappear on them after installing a mod.  This will kill the reputation of your mods bro, and even you as a mod author.  I understand this is your first mod, but would be best to try and create your own table for storing status messages.  Just look at the messages table and use that to base it from instead.  And not sure, but perhaps a clone of the topics table somewhat will be needed.

But hey, if you still feel that you want to use the already existing topic/post functions within SMF which you seem to be using already (and the tables), that it's probably not a good idea to automatically hide a board on them after installing this mod.  I would let them decide via Admin Panel Settings on what board to chose for status updates, as well as make it automatically DISABLED by default (that way the user has to enable it and upon doing so will need to define a board for it to use upon their already existing boards).

Anyways, these are some of the unspoken rules of coding, not in any specific order... 

Rule #1:  Do Not change anything that is already there without the user knowing this prior to it happening.
Rule #2:  Do Not, intentionally, cause any security issues with your product.  Make sure it is completely, 100%, secure to the best of your knowledge.
Rule #3:  Do Not Use other peoples code without their permission.  Make sure you note that their code has contributed to your project and how.
Rule #4:  Support your projects/products and Respect those who use it.
Rule #5:  Your product/project must not contain any viruses/malware/spyware/trojans of any kind.
Rule #6:  Your product/project must not harm the users computer, or software it was intentionally designed for, or any other software, including the Operating System in which it runs on.

And there are many many more rules...  I just don't have the time to list them all.  But if you look at Rule #1 above, you will see that you are in direct violation of this rule with hiding of board id #1 upon installation of your status mod.

Well, bro, Good luck with this mod and Cheers,
Solomon

Arantor

I didn't have chance to reply to this yesterday.

While I fully understand your reasoning for using an existing board and existing threads (since that makes permissions et al so easy), there are even more routes into that board than you may have realised - I haven't checked the code but off hand, you have direct links to boards and threads in them, portals linking to boards, the different feeds, the printpage view of threads, the recent topics system (which may reuse the same underlying code feeds does, not sure), SSI.php functions... plus any other mods your users may have installed.

This sort of thing regularly comes back at haunt folks, so please don't feel as though it's a direct criticism of you or your work - it isn't. Ordinarily I'd say it's a fantastic idea, but unfortunately the reality and interconnectedness means it isn't.

Pushing it into its own table needn't be a lot of work. Sure you'll be doing queries manually instead of using createPost but very likely it'll be easier to manage in the long run. You can create permissions readily enough to usergroups to manage their own and other user's entries and comments.

If there's anything I can help with please do let me know.

ElectricSquid

Thanks for the heads up on SSI, I used the morning to work that out and I'll update the package once I get the Who page worked out.

As far as "Rule #1:  Do Not change anything that is already there without the user knowing this prior to it happening."

I have stated many times that it does this. It's even in the write up, clearly stating "What you need to know BEFORE you install this mod". Beside that, where and how else could I warn the user that this is what it does by default?

As far as "Portals", that's not a default SMF function if I remember correctly. I do understand that users would like mods to be universally compatible, but support for other mods isn't something that is mandatory, if I remember correctly. I will try to support as much as I can when it comes to other mods, but I think it's a bit much to expect from the first version. That will come in time.

SoLoGHoST

Hello again, ElectricSquid.

Personally, I think you shouldn't use SMF boards to hold the status of each message.  Again, IMO, bad coding decision, since about 50 - 80% of SMF users have a portal installed, and since it will look rather ugly with this showing up in the Recent Topics/posts modules, it's very unlikely anyone would want to install it.  Let alone keep it, since it would cause problems with a portal system's topics right off of the bat, which many users come to rely on.  However, if you decide to go this way despite what I think, than I would suggest that you make it disabled by default, and after the user installs the package, you can redirect to where the settings are in the Admin Panel for a user to select a board to hold the status update messages in.  Choosing a board for the user, by default might tick a few users off.  However, letting them know of this ahead of time should be ok.  Just as long as there is an option to choose a different board to hold the status messages in, instead of Board #1.  But, in any case, this is your mod, just thought I'd give you some feedback on this from a mod author's stand-point.

Cheers :)

Arantor

I wouldn't normally do this, but let me give you a little insight from the discussion we had in the Cust. team about this. (As you know, we review mods prior to approval. That means invariably we discuss them as a team prior to approval, amongst other things)

More than one member of the Customizer team has expressed concern over using the main boards for status updates, not only from the usability as mentioned here, but also because it's supposed to be what amounts to a private board, but there are so many ways that is being accessed that it won't really ever work as intended.

Note also that it will skew the stats for the stats page as well.

There are also side benefits to keeping it out the main tables, you reduce the performance hit on searching (oops, yes, that's another area we both may have forgotten about), the hit on stats calculation, post count counting, and generally keeping the main tables free of many/short rows will reduce performance degradation of the entire forum in the longer term.


One other thing we'd picked up on is the use of storing what amounts to settings in the language files - e.g. $txt['avatar_first_msg'] = '60px';

Ideally, $modSettings is the place for this, and providing an interface inside ManageSettings.php which handles all that change for you makes the mod easier to use for the admin and probably easier to maintain too, because you're keeping it structurally closer to SMF (language stuff in the language files, settings in the settings files)

You could for example make the option just have the number (and have SMF check it is a number) and then just insert that number later, with your code adding 'px' on the end.

If there's something you're not sure about with that please do let me know and I can go through it. This is an excellent start to modding, but right now it has a few things we're a little concerned about, and what we're also keen for - and I'll be honest - is to discourage people from getting into maybe bad habits.

ElectricSquid

Quote from: Arantor on November 13, 2009, 03:57:58 PM
I wouldn't normally do this, but let me give you a little insight from the discussion we had in the Cust. team about this. (As you know, we review mods prior to approval. That means invariably we discuss them as a team prior to approval, amongst other things)

I appreciate the insight, and just so you know, do to the shear size and function of this mod, I don't expect it would be approved the first time around.


Quote
More than one member of the Customizer team has expressed concern over using the main boards for status updates, not only from the usability as mentioned here, but also because it's supposed to be what amounts to a private board, but there are so many ways that is being accessed that it won't really ever work as intended.

I realize that there are a lot of ways into a board.
I have eliminated view through the following...
  • BoardIndex
  • Search
  • Search2
  • Recent
  • Unread
  • UnreadReplies
  • Notify
  • JumpTo
  • SSI functions


Quote
Note also that it will skew the stats for the stats page as well.

There are also side benefits to keeping it out the main tables, you reduce the performance hit on searching (oops, yes, that's another area we both may have forgotten about), the hit on stats calculation, post count counting, and generally keeping the main tables free of many/short rows will reduce performance degradation of the entire forum in the longer term.

Search and Search2 has been eliminated already.

Stats?
OK, you got me there. How do I keep the MyStatus board from being counted in stats?
I'll look to see if I can eliminate that too.

Short rows?
OK, didn't think of that yet.
I planned to create a way of pruning the MyStatus board, since it will be fast paced and any Status Update over 3 months old is as good as dead and can be removed.



Quote
One other thing we'd picked up on is the use of storing what amounts to settings in the language files - e.g. $txt['avatar_first_msg'] = '60px';

Ideally, $modSettings is the place for this, and providing an interface inside ManageSettings.php which handles all that change for you makes the mod easier to use for the admin and probably easier to maintain too, because you're keeping it structurally closer to SMF (language stuff in the language files, settings in the settings files)

You could for example make the option just have the number (and have SMF check it is a number) and then just insert that number later, with your code adding 'px' on the end.

Admin settings in the admin panel are next on the list.
I put them in the language file out of temporary convenience. But I do plan to create an admin panel section dedicated to the mod.


Quote
If there's something you're not sure about with that please do let me know and I can go through it. This is an excellent start to modding, but right now it has a few things we're a little concerned about, and what we're also keen for - and I'll be honest - is to discourage people from getting into maybe bad habits.

Thanks for your help.
I could use a point in the right direction with how to get this mod, on install, to create it's own board, and connect to it. With the creation of it's own board, it won't need to connect to an existing one.

ElectricSquid

Version 1.1 is done.
I added Who's Online support and made it where the MyStatus board doesn't show/interfere with SSI functions that show normal boards, topics, or replies.
A special SSI function for MyStatus_Updates will be created soon.

The updated pre-release of MyStatus_Updates v1.1 is attached to the first post of this topic.
This pre-release is for testing on a non-production site ONLY.
MyStatus_Updates mod is not yet an approved SMF mod at this time.

Advertisement: