Please upgrade here. These earlier versions are no longer being updated and have security issues.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Request: Plugin for adding Application Questions and linking application to User List. (Will pay!)

woftwoft
edited September 2014 in Vanilla 2.0 - 2.8

Hello everyone,

So I don't know if this is the correct place for this discussion, if not please move it to the appropriate section.

Additionally I don’t know if I am allowed to ask for plugin development by offering monetary reward. If not let me know and remove my post.

So without further delay,

I am a leader of a non-profit online multi gaming community (www.thechaosvanguard.co.uk) and have used Vanilla and the plugins available throughout our site. However, when I have run into issues that no plugin was able to solve I hard coded the solutions into the core files (big “no no” I know).

One such issue was the use of an application system for our forums. We are a closed community of sorts and any member who does wish to join has to apply with an application form. This information that the “Applicant” provides allows us to determine whether or not they are accepted into our community.
This enables us not only gives us valuable insight into the applicant but it also allows us better tracking of our members through offsite excel sheets etc.
This essentially means that the use of an application form is essential for our community, and is a much better way than the stereotypical use of a new discussion thread for the application of new members.

How do I currently employ this feature, and how does the feature work currently?

The current method that I have employed to this is through the modification of multiple core files, more specifically the “applications/dashboard/views/entry/registerapproval.php”, “applications/dashboard/views/user/applicants.php” and the “applications/dashboard/views/user/users.php”.

All of the modified files are attached.

Section 1: Application Form

Please See RegistrationApp.jpg for an image of what the user sees.

From this image you can tell I have added a lot of questions to the application form, they are added/coded the same way as every other question is coded in the file. Also there is the radio list of games. This is used to control the display of additional questions within the application form. It is implemented through JavaScript, which will hide/show questions based on the game that is selected.

All of the answers are saved in the database within the “User” column, although the default answer has to be set to null, so that when the hidden answer does not have a value, no error is created.

Normally after adding the code to this page, and creating an additional question (for example, we might start supporting another game and thus add it to the application form) I have to manually go into the database and create the new fields.

The code of “registerapproval.php” is attached in the "ModifiedFiles.zip".

Section 2: Applicants

After adding the question to the Application form and ensuring they are being stored in the database, I then created a way that our community staff members could see all of the additional information. Originally this left me with very large lists on the applicant page, but by using a couple of if statements and again JavaScript to show and hide the applications, I managed to create a compact view of the applicants. The essential information, such as what game they applied for is displayed by default, but the rest of the application form is hidden and can be unhidden with the press of a button when a staff member is reviewing the applicant.

Please See ApplicantionList.jpg for an image of what this page looks like.

An additional feature was that only the information pertaining to the game they applied for is displayed in the application form, so in the image shown; the applicant for League of Legends only shows the league of legends questions, rather than loading all the other questions for other applications as well, which would be blank, as the user would have not been able to answer these anyway, as they were hidden on the application form.

The code for “applicants.php” is attached in the "ModifiedFiles.zip".

Section 3: Users List

Lastly, I have modified the user list that is normally present in vanilla as well. This is essentially a clone of the “applicants” page, but on the user list.

Here is an image of the user list.

The “users.php” is attached in the "ModifiedFiles.zip".

So what am I asking for?

I would like to know if this is possible to implement into a plugin and if it is, how much this would cost?

An additional feature that would be essential for the plugin is this:
Through the dashboard of Vanilla, Admins must be able to add additional questions to the application form, either as part of the Radio List of games, or as an individual question. These questions must then be stored in the database so that the plugin would be able to then call in to the “applicants” and “users” list.

Please let me know what you think.

Kind Regards,

Woft

Tagged:

Comments

  • whu606whu606 I'm not a SuperHero; I just like wearing tights... MVP

    @woft‌

    Welcome to the community.

    It's perfectly fine (some might say positively encouraged!) to offer remuneration for plugin development. I've tweaked your thread title to show that you are so inclined.

    There are a number of excellent developers here, so I am pretty sure someone will be able to help you, especially as you seem to have been very clear about what you need.

  • R_JR_J Ex-Fanboy Munich Admin

    Great description!

    And I'd say de_rats_2004_crzy B)

  • hgtonighthgtonight ∞ · New Moderator

    @R_J said:
    And I'd say de_rats_2004_crzy B)

    Oh man, do you play CS:GO?

    Search first

    Check out the Documentation! We are always looking for new content and pull requests.

    Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.

  • woftwoft
    edited September 2014

    haha it's cool to see gamers here too!

    not that i wouldn't expect it :) not exactly a niche group is it haha

  • R_JR_J Ex-Fanboy Munich Admin

    @hgtonight said:
    Oh man, do you play CS:GO?

    No, I've played 1.6 (not because I'm somewhat retro, but simply because it was state of the art then) and source but that's a looong time ago now...

  • hgtonighthgtonight ∞ · New Moderator

    On topic:

    Profile extender could be used as an example of extending the user table. I would also put the data on the profile page rather than the back end, unless you search via that data.

    Search first

    Check out the Documentation! We are always looking for new content and pull requests.

    Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.

  • hgtonighthgtonight ∞ · New Moderator
    edited September 2014

    @woft said:
    haha it's cool to see gamers here too!

    not that i wouldn't expect it :) not exactly a niche group is it haha

    @R_J said:
    No, I've played 1.6 (not because I'm somewhat retro, but simply because it was state of the art then) and source but that's a looong time ago now...

    I used play TF2 competitively (lol), but the group disbanded so I stick to pub games. CS:GO is much more accessible than 1.6.

    Search first

    Check out the Documentation! We are always looking for new content and pull requests.

    Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.

  • @hgtonight said:
    On topic:

    Profile extender could be used as an example of extending the user table. I would also put the data on the profile page rather than the back end, unless you search via that data.

    Yeh we do use that list to search, so having the information there is the best solution. it is much more compact and efficient than searching through different user profiles.

  • hgtonighthgtonight ∞ · New Moderator

    @woft said:
    Yeh we do use that list to search, so having the information there is the best solution. it is much more compact and efficient than searching through different user profiles.

    If searching is a priority, then you will have to modify the models to do this properly.

    Seems like an interesting problem.

    Search first

    Check out the Documentation! We are always looking for new content and pull requests.

    Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.

  • businessdadbusinessdad Stealth contributor MVP
    edited September 2014

    @hgtonight said:
    I used play TF2 competitively (lol)

    Going OT
    Wait until you will grow older, then you will forget "competitive" and "FPS". I also play TF2 (very) occasionally, grilling other players' ar$es as a Pyro. :D

  • businessdadbusinessdad Stealth contributor MVP
    edited September 2014

    @hgtonight said:
    If searching is a priority, then you will have to modify the models to do this properly.
    Seems like an interesting problem.

    It is indeed. Personally, although I'm a supporter of normal forms, I would not store the answers given on the application form in table columns. It doesn't make sense to have hundreds of columns, most of which are empty most of the time. This is one of the cases in which a document storage format comes handy (in its basic implementation, that means storing a JSON object in a text column).

    The drawback of this approach is that searching possibilities, with a plain Vanilla Forums setup, are limited:

    • Thou shalt not use LIKE %s% on the JSON object.
    • Thou cannot use the JSON in a WHERE clause.

    If the search facility is critical, then I would add an ElasticSearch or Sphinx server to power it. Of course, if searching just means "showing the user list and using CTRL+F", then it's much simpler. :)

  • businessdadbusinessdad Stealth contributor MVP

    If I had more time to spare, I would definitely give it a go. I already prepare the architecture on the whiteboard (which will last until my daughter "decorates" it). Some people have the hobby of games, some design software (when they are not busy designing software) :D

  • Ok, so I am completely confused by your answer as I am very new to computer programming, however I don't doubt that your approach might work. Shame no one else has the time to build this.

  • peregrineperegrine MVP
    edited September 2014

    Shame no one else has the time to build this.

    I've noticed that people get more responses and developers may be more motivated to act upon things when you state an exact amount or ballpark range of how much you will pay.

    A number of people who started discussions that said willing to pay. meant $5 for a weeks work. Not suggesting that this your offering price. But putting an amount you are willing to pay often helps.

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • hgtonighthgtonight ∞ · New Moderator

    @businessdad said:
    Wait until you will grow older, then you will forget "competitive" and "FPS". I also play TF2 (very) occasionally, grilling other players' ar$es as a Pyro. :D

    Pyros represent! I remember a time when airblast didn't exist. This makes me feel really old when pubbing today.

    @woft Feel free to PM me your budget if you don't want to post it publicly. I agree with @peregrine, that your budget dictates interest.

    Search first

    Check out the Documentation! We are always looking for new content and pull requests.

    Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.

  • businessdadbusinessdad Stealth contributor MVP

    Personal suggestion: I would make the budget public (possibly in the main post; a moderator can add it), so that anyone who might be interested in the project doesn't have to send a PM every time.

Sign In or Register to comment.