Vanilla 1 is no longer supported or maintained. If you need a copy, you can get it here.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.
Requests or development advice/assistance
There are several things I want Vanilla to do, which will require extensions.
I realize these won't appear overnight, and some will take more work/time than others. What I'm looking for is either someone willing to develop each (for anyone to use), or, can point me in the right direction (Vanilla-specific info: how to extend which classes? what delegates to use?) for how to achieve them myself, to share.
Some I tried on my own, but I soon got frustrated since I wasn't sure if I was even going about it the right way, if it was even possible (perhaps necessary delegates don't exist? etc). I'm slightly past a beginner with classes, I'm just struggling a bit to figure out "the Vanilla way" to do things.
I realize these won't appear overnight, and some will take more work/time than others. What I'm looking for is either someone willing to develop each (for anyone to use), or, can point me in the right direction (Vanilla-specific info: how to extend which classes? what delegates to use?) for how to achieve them myself, to share.
Some I tried on my own, but I soon got frustrated since I wasn't sure if I was even going about it the right way, if it was even possible (perhaps necessary delegates don't exist? etc). I'm slightly past a beginner with classes, I'm just struggling a bit to figure out "the Vanilla way" to do things.
Registration via email verification- Email pref: display, hide or
email form - Permissions
- Category: view, add discussion, add comment (with ability to add individual users, rather than just roles, to keep the number of roles down)
- User: view profile, send/view email
- Sub-categories
- "areas" (i.e: the equivalent of "categories" in traditional forums)
- Split(/merge) comments, with option to create a post which would appear first in the new discussion (where you can explain what discussions the comments were taken from, for example)
- discussion tooltip preview (ala VBulletin)
- on categories list, display category title in bold if it has new discussions within it
display user title in discussion
0
This discussion has been closed.
Comments
Thanks Immersion, your help is appreciated.
- The user apply and get the applicant role; a Verification Key need to be created, save in the database and sent by mail to the applicant (like in the RequestPasswordReset function in UserManager). You should already have the delegations in the CreateUser fonction in People.Class.UserManager;
- The applicant follow the link, the key is verified and the user get a new role. that's a new PostBackControl for people.php to create.
You also need to add a checkbox in the Registration panel in the setting page to enable this feature. You will need a delegation in settings_registration_form.phpand in People.Control.RegistrationForm
user title in discussion: do it with a theme. Make a new theme folder with a new name, copy discussion.php (individual discussion posts) or discussions.php (discussion overview) into that folder and edit the copies. Take a look at account_profile.php for the names of the item you want (e.g. for User name: $this->User->Name; for user role: $this->User->Role) and add these where you want them to discussion(s).php.
You can use a similar approach for the tooltip preview I guess too.
Ah yes, lastly, choose your theme in the settings.
Try on a separate page, I haven't been able to figure out how to gain access to the user data, for the profile you're currently looking at.
$UserID = ForceIncomingInt('u', $Context->Session->UserID); $UserManager = $Context->ObjectFactory->NewContextObject($Context, 'UserManager'); $User = $UserManager->GetUserById($UserID); echo $User->Name; echo $User->Email; ...
For the visitor details, it's just $Context->Session->Name and $Context->Session->Email...
See the People User class to see all the properties of the User object.
function EmailForm(&$Context) { ... $UserID = ForceIncomingInt('u', 0); $UserManager = $Context->ObjectFactory->NewContextObject($Context, 'UserManager'); $User = $UserManager->GetUserById($UserID); ... } Render() { this->PostBackParams->Set('PostBackAction', 'ProcessEmailForm'); $this->PostBackParams->Set('u', ForceIncomingInt('u', $Context->Session->UserID)); echo '<div id="Form" class="EmailForm"> <fieldset> <legend>Email Form</legend>'; $this->CallDelegate('PreWarningsRender'); echo $this->Get_Warnings() .$this->Get_PostBackForm('frmEmailForm'); $this->CallDelegate('PreInputsRender'); echo '<ul> <li> <label for="SubjectEmailForm">Subject <small>(required):</small></label> <input type="text" name="SubjectEmailForm" value="" maxlength="100" class="SmallInput" id="SubjectEmailForm" /> </li> ...} $this->CallDelegate('PostRender'); } $EmailForm = $Context->ObjectFactory->NewContextObject($Context, 'EmailForm'); $Page->AddRenderControl($EmailForm, $Configuration["CONTROL_POSITION_BODY_ITEM"] + 1); $Panel->AddList('Email Options', 10); $Panel->AddListItem('Email Options', 'Email this user', GetUrl($Context->Configuration, 'account.php', '', '', '', '', 'PostBackAction=EmailForm'));