Link Tools 1.4.1
<span style="font-weight: bold;" class="mycode_b"><a href=" " target="_blank" rel="noopener" class="mycode_url">Link Tools</a></span> extracts the links (URLs) in posts made to your forum, and then provides you with four new features:<br />
<ol type="1" class="mycode_list"><li><span style="font-style: italic;" class="mycode_i">Link previews</span>. A preview box at the bottom of the post is generated for each link in a post. Different types of preview can be generated for different sites/content, as supported by a customisable Link Previewer framework.<br />
<br />
</li>
<li><span style="font-style: italic;" class="mycode_i">Seamless link searching</span>. Just type a link (URL) into the default field ("Keyword") of the standard MyBB search form and Link Tools will intercept the search and provide accurate results: only posts which contain the link or its equivalent will be listed. The default MyBB search when set to Full Text does not handle links at all well and typically returns results completely unrelated to the link for which you searched.<br />
<br />
</li>
<li><span style="font-style: italic;" class="mycode_i">A duplicate link warner</span>. When a member is starting a new thread, s/he will be warned if any links (URLs) that s/he includes in the thread-starter have already been posted to the board. This feature is especially useful when your board is heavily resource-based and there is a risk of members starting duplicate discussions about resources (links and videos) that have already been discussed.<br />
<br />
</li>
<li><span style="font-style: italic;" class="mycode_i">Link limiting.</span> This allows for limiting of the number of links that may be posted by each member in each of a given set of usergroups in a given set of forums over a given (rolling) period. The administrative interface is at <span style="font-style: italic;" class="mycode_i">Forums & Posts</span> » <span style="font-style: italic;" class="mycode_i">Link Posting Limits</span>, and supports in-page editing, deletion, and addition of limit rules.<br />
</li>
</ol>
<br />
<img src=" " data-original-url="https://community.mybb.com/uploads/mods/previews/preview_116662_1613785965_0994b70ad563fe6fadff94e7ae5ab03b.png" loading="lazy" alt="[Image: preview_116662_1613785965_0994b70ad563fe...5ab03b.png]" class="mycode_img" /><br />
<br />
<img src=" " data-original-url="https://community.mybb.com/uploads/mods/previews/preview_116662_1605018239_4a1e09d665486c578818b4d275718b1c.png" loading="lazy" alt="[Image: preview_116662_1605018239_4a1e09d665486c...718b1c.png]" class="mycode_img" /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Link Tools</span> considers to be a link anything that MyBB core also considers to be a link:<br />
<ol type="1" class="mycode_list"><li>The URLs in <code class="inline-code">url</code> tags.<br />
<br />
</li>
<li>The URLs in <code class="inline-code">video</code> tags.<br />
<br />
</li>
<li>Bare URLs: those beginning with <code class="inline-code">http://</code>, <code class="inline-code">https://</code>, <code class="inline-code">ftp://</code>, <code class="inline-code">ftp.</code>, and <code class="inline-code">www.</code>.<br />
</li>
</ol>
<span style="font-weight: bold;" class="mycode_b">Link Tools</span> handles all of the different ways in which two links can look different but be the same (resolve to the same page):<br />
<ol type="1" class="mycode_list"><li>When they are the same except for their protocol: <code class="inline-code">http://</code> versus <code class="inline-code">https://</code>.<br />
<br />
</li>
<li>When one has a <code class="inline-code">www.</code> prefix and the other does not.<br />
<br />
</li>
<li>When they have the same query parameters but in a different order.<br />
<br />
</li>
<li>When one has a redundant query parameter - e.g., the <code class="inline-code">fbclid</code> query parameter added by Facebook - and the other does not.<br />
<br />
</li>
<li>When their domains are capitalised differently.<br />
<br />
</li>
<li>When one redirects (potentially via multiple redirects) to the other, e.g., when a URL shortening service like <a href=" " target="_blank" rel="noopener" class="mycode_url"> </a> is used to create a short URL which redirects to the target URL.<br />
<br />
</li>
<li>When both redirect (potentially via multiple redirects) to the same final link, e.g., when two different "shortened" URLs redirect to the same target URL.<br />
</li>
</ol>
Note that the redirects recognised by Link Tools are: HTTP redirects, HTML meta tag redirects, and "canonical" HTML link tags.<br />
<br />
The first five differences are eliminated via "normalisation" of URLs.<br />
<br />
The final two are eliminated by querying the URLs until the terminating URL is found. This is done using the cURL PHP functions.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Requirements</span><br />
<ul class="mycode_list"><li><a href=" " target="_blank" rel="noopener" class="mycode_url">The Client URL Library (cURL) for PHP</a>.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Licence</span><br />
<br />
Link Tools is licensed under the GPL version 3.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">GitHub Repository</span><br />
<br />
<a href=" " target="_blank" rel="noopener" class="mycode_url"> </a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Collaboration and maintenance</span><br />
<br />
Link Tools is a project of the unofficial <a href=" " target="_blank" rel="noopener" class="mycode_url">MyBB Group</a>.<br />
<br />
Its MyBB Group thread is:<br />
<br />
<a href=" " target="_blank" rel="noopener" class="mycode_url"> </a><br />
<br />
Feel free to report bugs and issues there, on GitHub, or here on the community forums.
<span style="font-weight: bold;" class="mycode_b"><a href=" " target="_blank" rel="noopener" class="mycode_url">Link Tools</a></span> extracts the links (URLs) in posts made to your forum, and then provides you with four new features:<br />
<ol type="1" class="mycode_list"><li><span style="font-style: italic;" class="mycode_i">Link previews</span>. A preview box at the bottom of the post is generated for each link in a post. Different types of preview can be generated for different sites/content, as supported by a customisable Link Previewer framework.<br />
<br />
</li>
<li><span style="font-style: italic;" class="mycode_i">Seamless link searching</span>. Just type a link (URL) into the default field ("Keyword") of the standard MyBB search form and Link Tools will intercept the search and provide accurate results: only posts which contain the link or its equivalent will be listed. The default MyBB search when set to Full Text does not handle links at all well and typically returns results completely unrelated to the link for which you searched.<br />
<br />
</li>
<li><span style="font-style: italic;" class="mycode_i">A duplicate link warner</span>. When a member is starting a new thread, s/he will be warned if any links (URLs) that s/he includes in the thread-starter have already been posted to the board. This feature is especially useful when your board is heavily resource-based and there is a risk of members starting duplicate discussions about resources (links and videos) that have already been discussed.<br />
<br />
</li>
<li><span style="font-style: italic;" class="mycode_i">Link limiting.</span> This allows for limiting of the number of links that may be posted by each member in each of a given set of usergroups in a given set of forums over a given (rolling) period. The administrative interface is at <span style="font-style: italic;" class="mycode_i">Forums & Posts</span> » <span style="font-style: italic;" class="mycode_i">Link Posting Limits</span>, and supports in-page editing, deletion, and addition of limit rules.<br />
</li>
</ol>
<br />
<img src=" " data-original-url="https://community.mybb.com/uploads/mods/previews/preview_116662_1613785965_0994b70ad563fe6fadff94e7ae5ab03b.png" loading="lazy" alt="[Image: preview_116662_1613785965_0994b70ad563fe...5ab03b.png]" class="mycode_img" /><br />
<br />
<img src=" " data-original-url="https://community.mybb.com/uploads/mods/previews/preview_116662_1605018239_4a1e09d665486c578818b4d275718b1c.png" loading="lazy" alt="[Image: preview_116662_1605018239_4a1e09d665486c...718b1c.png]" class="mycode_img" /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Link Tools</span> considers to be a link anything that MyBB core also considers to be a link:<br />
<ol type="1" class="mycode_list"><li>The URLs in <code class="inline-code">url</code> tags.<br />
<br />
</li>
<li>The URLs in <code class="inline-code">video</code> tags.<br />
<br />
</li>
<li>Bare URLs: those beginning with <code class="inline-code">http://</code>, <code class="inline-code">https://</code>, <code class="inline-code">ftp://</code>, <code class="inline-code">ftp.</code>, and <code class="inline-code">www.</code>.<br />
</li>
</ol>
<span style="font-weight: bold;" class="mycode_b">Link Tools</span> handles all of the different ways in which two links can look different but be the same (resolve to the same page):<br />
<ol type="1" class="mycode_list"><li>When they are the same except for their protocol: <code class="inline-code">http://</code> versus <code class="inline-code">https://</code>.<br />
<br />
</li>
<li>When one has a <code class="inline-code">www.</code> prefix and the other does not.<br />
<br />
</li>
<li>When they have the same query parameters but in a different order.<br />
<br />
</li>
<li>When one has a redundant query parameter - e.g., the <code class="inline-code">fbclid</code> query parameter added by Facebook - and the other does not.<br />
<br />
</li>
<li>When their domains are capitalised differently.<br />
<br />
</li>
<li>When one redirects (potentially via multiple redirects) to the other, e.g., when a URL shortening service like <a href=" " target="_blank" rel="noopener" class="mycode_url"> </a> is used to create a short URL which redirects to the target URL.<br />
<br />
</li>
<li>When both redirect (potentially via multiple redirects) to the same final link, e.g., when two different "shortened" URLs redirect to the same target URL.<br />
</li>
</ol>
Note that the redirects recognised by Link Tools are: HTTP redirects, HTML meta tag redirects, and "canonical" HTML link tags.<br />
<br />
The first five differences are eliminated via "normalisation" of URLs.<br />
<br />
The final two are eliminated by querying the URLs until the terminating URL is found. This is done using the cURL PHP functions.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Requirements</span><br />
<ul class="mycode_list"><li><a href=" " target="_blank" rel="noopener" class="mycode_url">The Client URL Library (cURL) for PHP</a>.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Licence</span><br />
<br />
Link Tools is licensed under the GPL version 3.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">GitHub Repository</span><br />
<br />
<a href=" " target="_blank" rel="noopener" class="mycode_url"> </a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Collaboration and maintenance</span><br />
<br />
Link Tools is a project of the unofficial <a href=" " target="_blank" rel="noopener" class="mycode_url">MyBB Group</a>.<br />
<br />
Its MyBB Group thread is:<br />
<br />
<a href=" " target="_blank" rel="noopener" class="mycode_url"> </a><br />
<br />
Feel free to report bugs and issues there, on GitHub, or here on the community forums.