Click anywhere to close this dialog

Farewell

Great is the art of beginning, but greater is the art of ending
Henry Wadsworth Longfellow

I announce that I cease all development and activity in the programming universe indefinitely. My career has reached the turning point I was not expecting for at least another year, leaving me highly off guard and without laid-out plans for this hobby's continuity. I have begun a 5-year residency program in Neurosurgery which is clearly not compatible, time-wise, with programming.

I gave in all my passion for developing, and you gave me back your loyalty and trust, even when I did not deserve that much. Now it is the time for payback. I release all my present and past work as Open Source software, in the hope some talented developer will continue maintaining and expanding my vision of a modern, sleek forum software. The intrinsic flexibility of MyBB is the true hidden gem of an otherwise outdated codebase; I do hope the project can continue and be updated complying to the latest coding standards.

I hereby thank Euan, kawaii, andrewjs18, Ben, Matt, Omar G., effone, Eric J., Devilshakerz, Wildcard, JordanMussi and all the other team members I have had the opportunity to work with when I was a MyBB team member. I thank Tomm M, my mentor, who inspired me to pick up coding with his piece-of-art plugins. And finally, I thank all of you MyBBoost subscribers who have helped me getting through my toughest university years economically.

Yours sincerely, Filippo

QuickReferences 1.2

7 Aug 2016 Edited
#1
QuickReferences is a simple plugin which lets you reference to other threads quickly using their identifiers. Thanks to At.js, a dropdown list will be generated everytime your users type an hashtag (#) followed by the threads name they want to search for. The dropdown is attached to textareas and MyBB's default WYSIWYG editor (SCEditor) both in WYSIWYG and Source modes when you post a new thread, new reply, edit a post, perform a quick reply and perform a quick edit (basically, everywhere it is most useful).

CKEditor-based plugins (including Rin Editor) are supported.

Starting from 1.2, Unicode characters are supported.

[Image: WiE0XgP.gif]

Technical implementation


QuickReferences exploits AJAX to query the database for a list of threads containing your search words. It's packed with a stupidly simple caching system which prevents sending too many queries, saving resources. Results are limited to 5 threads per search query and when a query string returns less than 5 threads, it stops querying the database and gets threads from the cache.

On the backend side, hashtags followed by threads identifiers are matched using a regular expression and replaced by a placeholder when singular posts are parsed. In the end, a single query of all collected thread identifiers is performed and existing threads ultimately replace valid placeholders. Non existing threads are not parsed and their corresponding placeholders are restored by the original matched string.

Customization


You can customize links generated by QuickReferences by using the CSS class .quick_reference.

Requirements


QuickReferences requires MyBB 1.8.0+ and PHP 5.4+.

You can follow the plugin's development here: QuickReferences development.

Installation instructions


The installation is as simple as uploading the files maintaining the same folder structure they are compiled to and clicking the button Install & activate within your board's plugin list.

QuickReferences does not add any settings.

QuickReferences adds a CSS file named at.css to every theme of your board. You can customize the dropdown's appearance by editing the stylesheet's CSS rules.

Upgrading instructions from older versions to newer ones


Simply upload the new files, replacing the old ones. You don't need to uninstall the plugin.

Reporting issues


If you encounter an issue, feel free to open a new thread in this forum with detailed instructions on how to reproduce your issue. Suggestions and feature requests are appreciated as well.
Filename Size Downloads
19.31 KB 272
honger, Jopie, Enes Palit And 2 others like this post
Shade 31 Jul 2020
#41
I don't usually provide support for third party plugins. If you want you can alter that plugin as follows. Find in inc/plugins/MinimalEditor/hooks_frontend.php:

$output $parser->parse_message($mybb->get_input('message'), $parser_options); 
Add after:

$output quickreferences_fill_placeholders($output); 
This should suffice.
Sama34 31 Jul 2020
#42
I see, yes, it should work. Ideally this could be handled from within QuickReferences but I could push a PR for your consideration at a later time.

Thanks.
Shade 31 Jul 2020
#43
I agree that QuickReferences should handle all cases. Problem is, if I put the placeholders filler within the parser itself there will be a spike in resource usage, because in some places (like showthread for example) it is called several times.

I need to have a look at another way to handle it.
Sama34 31 Jul 2020 Edited
#44
I was thinking of something around the following lines:
$plugins->add_hook('parse_message_end''quickreferences_parse_message_end');
function 
quickreferences_parse_message_end(&$message)
{
    global 
$mybb$plugins;

    if(
defined('THIS_SCRIPT') && THIS_SCRIPT == 'xmlhttp.php' && $mybb->get_input('action') == 'get_preview')
    {
        
$message quickreferences_fill_placeholders($message);
    }

    
$plugins->remove('parse_message_end''quickreferences_parse_message_end');

Edit: But indeed, this would be to "provide support for third party plugins", which you would like to avoid.
albano 8 Aug 2020
#45
Hello there,

Is there any way to make all references permanent links. For instance, when I upgrade MyBB and I have to disable to QuickRef plug in, all QuickRef links only show the threadID. I would prefer to have an option to make some QuickREf threadID permanent links without the threadID. Hopefully, I'm elaborating my question well.
Shade 8 Aug 2020
#46
No, there is not. QuickReferences is designed to follow through link and title changes, and the only way to do that is to reference to thread identifiers.
Eldenroot 27 Jan Edited
#47
Is possible to somehow (no option in ACP is needed, hardcoded is fine) to enable searching threads only from selected forums? Thank you @Shade

EDIT: Nevermind, here is the solution:

line 178
$query = $db->query("
SELECT t.subject, t.tid, f.name AS forumname, u.avatar
FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."forums f ON f.fid = t.fid
LEFT JOIN ".TABLE_PREFIX."users u ON u.uid = t.uid
WHERE t.subject LIKE '%" . $db->escape_string($mybb->input['query']) . "%' AND t.closed NOT LIKE 'moved|%' AND t.fid in (10, 11, 99, 101) AND {$unapproved_where} {$permsql}
ORDER BY t.sticky DESC, t.lastpost
LIMIT 10
");

where t.fid are IDs of your forums
Shade 28 Jan
#48
It's cleaner if you add your where statement to the $permsql array.
Eldenroot 29 Jan
#49
Would you share your idea on example?