<xml version="1.0" encoding="UTF-8">
    <rss version="2.0">
        <channel>
            <title>XOOPS Web Application System :: Forum</title>
            <link>https://xoops.org/</link>
            <description>Powered by You! :: XOOPS Community Bulletin Board</description>
            <lastBuildDate>Mon, 26 Oct 2026 06:42:34 +0000</lastBuildDate>
            <docs>https://backend.userland.com/rss/</docs>
            <generator>NewBB 5.1.0</generator>
            <category>Support Forums</category>
            <managingEditor>webmaster@xoops.org</managingEditor>
            <webMaster>webmaster@xoops.org</webMaster>
            <language>en</language>
                            <image>
                    <title>XOOPS Web Application System :: Forum</title>
                    <url>https://xoops.org/modules/newbb/assets/images/logoModule.png</url>
                    <link>https://xoops.org/</link>
                    <width>92</width>
                    <height>52</height>
                </image>
                                    <item>
                <title>XOOPS 2.7.4 Final Released (ready for PHP 8.6) [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367663</link>
                <description>Xoops Development::XOOPS 2.7.4 Final Released (ready for PHP 8.6)&lt;br&gt;
&lt;img src=&apos;https://xoops.org/uploads/images/img6ad2e70ce63d5.jpg&apos; border=&apos;0&apos; alt=&apos;Original Image&apos; onload=&quot;JavaScript:if(this.width&gt;800) this.width=800&quot; /&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;More info: &lt;a href=&quot;https://xoops.org/modules/publisher/item.php?itemid=6140&quot; target=&quot;_blank&quot; rel=&quot;external noopener nofollow&quot;&gt;https://xoops.org/modules/publisher/item.php?itemid=6140&lt;/a&gt;&lt;/strong&gt;</description>
                <pubDate>Sat, 17 Oct 2026 04:43:13 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367663</guid>
            </item>
                        <item>
                <title>XOOPS 2.5.11.2 - maintenance update for XOOPS 2.5.11 [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367662</link>
                <description>Xoops Development::XOOPS 2.5.11.2 - maintenance update for XOOPS 2.5.11&lt;br&gt;
&lt;img src=&apos;https://xoops.org/uploads/images/img6ad2e70cea181.jpg&apos; border=&apos;0&apos; alt=&apos;Original Image&apos; onload=&quot;JavaScript:if(this.width&gt;800) this.width=800&quot; /&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;More info: &lt;a href=&quot;https://xoops.org/modules/publisher/item.php?itemid=6139&quot; target=&quot;_blank&quot; rel=&quot;external noopener nofollow&quot;&gt;https://xoops.org/modules/publisher/item.php?itemid=6139&lt;/a&gt;&lt;/strong&gt;</description>
                <pubDate>Sat, 17 Oct 2026 04:42:43 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367662</guid>
            </item>
                        <item>
                <title>XOOPS 2.6.0 Alpha 2 released [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367661</link>
                <description>Xoops Development::XOOPS 2.6.0 Alpha 2 released&lt;br&gt;
&lt;img src=&apos;https://xoops.org/uploads/images/img6ad2e70ce6ff4.jpg&apos; border=&apos;0&apos; alt=&apos;Original Image&apos; onload=&quot;JavaScript:if(this.width&gt;800) this.width=800&quot; /&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;More info: &lt;a href=&quot;https://xoops.org/modules/publisher/item.php?itemid=6141&quot; target=&quot;_blank&quot; rel=&quot;external noopener nofollow&quot;&gt;https://xoops.org/modules/publisher/item.php?itemid=6141&lt;/a&gt;&lt;/strong&gt;</description>
                <pubDate>Sat, 17 Oct 2026 04:42:06 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367661</guid>
            </item>
                        <item>
                <title>XOOPS 2.5.11.1 - security update for XOOPS 2.5.11 [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367657</link>
                <description>Xoops Development::XOOPS 2.5.11.1 - security update for XOOPS 2.5.11&lt;br&gt;
&lt;img src=&apos;https://xoops.org/uploads/images/img6ac8614b99157.jpg&apos; border=&apos;0&apos; alt=&apos;Original Image&apos; onload=&quot;JavaScript:if(this.width&gt;800) this.width=800&quot; /&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;strong&gt;XOOPS 2.5.11.1 — security update for XOOPS 2.5.11&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;The XOOPS Development Team has released &lt;strong&gt;XOOPS 2.5.11.1&lt;/strong&gt;, a security update for XOOPS 2.5.11. It changes only the input filter that XOOPS uses on request data. If your site runs XOOPS 2.5.11, please apply it.&lt;br&gt;&lt;br&gt;&lt;strong&gt;DOWNLOAD&lt;/strong&gt;: &lt;a href=&quot;https://github.com/XOOPS/XoopsCore25/releases/tag/v2.5.11.1&quot; target=&quot;_blank&quot; rel=&quot;external noopener nofollow&quot;&gt;https://github.com/XOOPS/XoopsCore25/releases/tag/v2.5.11.1&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;What&apos;s fixed&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;XOOPS 2.5.11 bundles the XMF library, and its input filter (&lt;strong&gt;Xmf\FilterInput&lt;/strong&gt;, which &lt;strong&gt;XoopsFilterInput&lt;/strong&gt; builds on) now includes the fixes from XMF 1.2.32.1:&lt;br&gt;&lt;br&gt;* &lt;strong&gt;Filtering always finishes&lt;/strong&gt;: some input made the filter run until PHP hit its memory limit, so one request could take a page down. A value that does not settle after a fixed number of passes is now dropped. (&lt;a href=&quot;https://github.com/XOOPS/xmf/security/advisories/GHSA-8j4x-8r8r-5jgw&quot; rel=&quot;noopener external&quot; title=&quot;&quot;&gt;GHSA-8j4x-8r8r-5jgw&lt;/a&gt;)&lt;br&gt;* &lt;strong&gt;Stricter tag and attribute checks&lt;/strong&gt;: some tag and attribute patterns got through the filter. Tag and attribute names are now checked strictly, event-handler attributes are matched whatever their case, link schemes are checked after HTML entities are decoded, and stripped text keeps no partial tag. (&lt;a href=&quot;https://github.com/XOOPS/xmf/security/advisories/GHSA-pf53-59r5-mhjv&quot; rel=&quot;noopener external&quot; title=&quot;&quot;&gt;GHSA-pf53-59r5-mhjv&lt;/a&gt;)&lt;br&gt;&lt;br&gt;There are no database, template or language changes, and no new features. The fix keeps PHP 5.6 compatibility, so 2.5.11.1 runs on the same servers as 2.5.11.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;How to update&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;From XOOPS 2.5.11 (recommended: the patch)&lt;/strong&gt;&lt;br&gt;1. Download &lt;strong&gt;xoops-2.5.11-to-2.5.11.1-patch.zip&lt;/strong&gt; from the release page&lt;br&gt;2. Back up your site files&lt;br&gt;3. Copy the contents of the zip&apos;s &lt;strong&gt;htdocs&lt;/strong&gt; folder over your XOOPS root folder (the one that holds mainfile.php), keeping the folder paths. Two files are replaced:&lt;br&gt;&lt;div class=&quot;xoopsCode&quot;&gt;&lt;code style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;class/&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;libraries&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;vendor&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;xoops&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;xmf&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;FilterInput&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;include/&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;php&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;4. That&apos;s it. You don&apos;t need to run the upgrade wizard. System Admin now shows &lt;strong&gt;XOOPS 2.5.11.1-Stable&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;New install, or a version older than 2.5.11&lt;/strong&gt;&lt;br&gt;Use the full package (the source code zip on the release page) and follow the usual install or upgrade steps.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;XOOPS 2.7&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;XOOPS 2.7.4 RC 2 already includes the same fixes through XMF 1.3.2. If you are planning a move to the 2.7 line, see &lt;a href=&quot;https://github.com/XOOPS/XoopsCore27/releases&quot; rel=&quot;noopener external&quot; title=&quot;&quot;&gt;github.com/XOOPS/XoopsCore27/releases&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;...</description>
                <pubDate>Fri, 09 Oct 2026 03:51:23 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367657</guid>
            </item>
                        <item>
                <title>XOOPS 2.7.4-RC2 Released [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367656</link>
                <description>Xoops Development::XOOPS 2.7.4-RC2 Released&lt;br&gt;
&lt;img src=&apos;https://xoops.org/uploads/images/img6ac4fe3b7cec5.jpg&apos; border=&apos;0&apos; alt=&apos;Original Image&apos; onload=&quot;JavaScript:if(this.width&gt;800) this.width=800&quot; /&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;strong&gt;XOOPS 2.7.4 RC 2 — security hardening ahead of the final release&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;The XOOPS Development Team is pleased to announce &lt;strong&gt;XOOPS 2.7.4 RC 2&lt;/strong&gt;, the second release candidate for XOOPS 2.7.4. RC 2 adds no new features. It collects the security hardening and bug fixes made since RC 1, after a review of the core with CodeQL, Snyk, SonarCloud, Scrutinizer and manual audits.&lt;br&gt;&lt;br&gt;XOOPS 2.7.4 brings two-factor authentication into the core, makes SCEditor a full visual editor and the default for new sites, and adds Markdown support through EasyMDE. It runs on PHP 8.2 through 8.5.&lt;br&gt;&lt;br&gt;Please test RC 2 on a staging copy of your site and report anything you find. Unless something serious turns up, the next release is 2.7.4 Final.&lt;br&gt;&lt;br&gt;&lt;strong&gt;DOWNLOAD&lt;/strong&gt;: &lt;a href=&quot;https://github.com/XOOPS/XoopsCore27/releases&quot; target=&quot;_blank&quot; rel=&quot;external noopener nofollow&quot;&gt;https://github.com/XOOPS/XoopsCore27/releases&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;What&apos;s new since RC 1&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;Forms and redirects&lt;/strong&gt;&lt;br&gt;&lt;br&gt;* &lt;strong&gt;Form security tokens no longer depend on the browser&apos;s User-Agent&lt;/strong&gt;: a token is now a random value compared in constant time. A browser update, a privacy extension or a &quot;desktop site&quot; toggle between opening and submitting a form no longer rejects it. Forms opened before the upgrade still submit&lt;br&gt;* &lt;strong&gt;Protector uses the core form token&lt;/strong&gt;: its admin pages check the same token as the rest of XOOPS. XoopsGTicket is deprecated and now wraps the core token, so modules that still call it keep working&lt;br&gt;* &lt;strong&gt;One same-site check for redirects&lt;/strong&gt;: login, post-login and theme-switch return addresses share one check. It refuses targets written with backslashes, encoded slashes, HTML entities or embedded line breaks, and sends them to the home page instead&lt;br&gt;* &lt;strong&gt;Escaped confirmation pages and error lists&lt;/strong&gt;: xoops_confirm() escapes every field, value and label, and the object and login error lists are escaped too&lt;br&gt;&lt;br&gt;&lt;strong&gt;Files and storage&lt;/strong&gt;&lt;br&gt;&lt;br&gt;* &lt;strong&gt;Uploads are deleted only inside the upload directory&lt;/strong&gt;: the image manager and the smilies, user-rank and avatar admin pages resolve a stored file name before they delete it&lt;br&gt;* &lt;strong&gt;Protected database dumps&lt;/strong&gt;: a dump is written only under XOOPS_VAR_PATH, into a directory guarded by a deny-all .htaccess and private to the PHP user&lt;br&gt;* &lt;strong&gt;Cache ids use a site key&lt;/strong&gt;: the group part of theme and block cache ids is keyed with a random site key in xoops_data/data instead of the database credentials&lt;br&gt;* &lt;strong&gt;Random installer names&lt;/strong&gt;: the installer renames itself and names its cleanup script with random_bytes(). Only the installing session can finish the clean-up&lt;br&gt;* &lt;strong&gt;Protector writes its ban files atomically&lt;/strong&gt; and rejects an uploaded image it cannot inspect instead of staging it in uploads/&lt;br&gt;&lt;br&gt;&lt;strong&gt;Server configuration&lt;/strong&gt;&lt;br&gt;&lt;br&gt;* &lt;strong&gt;xoops_lib/.htaccess works on Apache 2.4&lt;/strong&gt; without mod_access_compat, where the old rules returned a 500 error instead of denying access&lt;br&gt;* &lt;strong&gt;PHPMailer&apos;s unused OAuth helper is removed&lt;/strong&gt; from the bundled vendor tree, and a Composer script removes it again after every vendor refresh&lt;br&gt;* &lt;strong&gt;reCAPTCHA v2 verifies over POST&lt;/strong&gt;, so the secret key no longer appears in proxy or server logs&lt;br&gt;* &lt;strong&gt;The bundled XMF library is updated to 1.3.2&lt;/strong&gt;, which tightens the tag and attribute filtering used for request input&lt;br&gt;&lt;br&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;br&gt;&lt;br&gt;* The optional confirmation step for deleting notifications works again&lt;br&gt;* Deleting a user rank or avatar that no long...</description>
                <pubDate>Tue, 06 Oct 2026 15:18:34 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367656</guid>
            </item>
                        <item>
                <title>Re: XOOPS 2.7.4-RC1 Released [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367655</link>
                <description>Xoops Development::XOOPS 2.7.4-RC1 Released&lt;br&gt;
Thank you for your kind words! &lt;br&gt;&lt;br&gt;It&apos;s nice that some people see and appreciate the progress!</description>
                <pubDate>Mon, 28 Sep 2026 05:41:57 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367655</guid>
            </item>
                        <item>
                <title>Re: XOOPS Plugin for PhpStorm 1.0 Alpha 3 Released [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367651</link>
                <description>Xoops Development::XOOPS Plugin for PhpStorm 1.0 Alpha 3 Released&lt;br&gt;
&lt;div class=&quot;markdown-heading&quot; dir=&quot;auto&quot;&gt; &lt;h2 class=&quot;heading-element&quot; dir=&quot;auto&quot; tabindex=&quot;-1&quot;&gt;4. Inspections + Alt+Enter&lt;/h2&gt; &lt;a id=&quot;user-content-4-inspections--altenter&quot; class=&quot;anchor&quot; aria-label=&quot;Permalink: 4. Inspections + Alt+Enter&quot; href=&quot;https://github.com/XOOPS/phpstorm-plugin/blob/master/TUTORIAL.md#4-inspections--altenter&quot;&gt;&lt;svg data-component=&quot;Octicon&quot; class=&quot;octicon octicon-link&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt; &lt;ol dir=&quot;auto&quot;&gt; &lt;li&gt;Copy&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;test-fixtures/bad_module_sample.php&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;under&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;htdocs/modules/_xoops_demo/&lt;/code&gt;.&lt;/li&gt; &lt;li&gt;Open it &amp;mdash; highlights for guards, query/exec, Request, etc.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Alt+Enter&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;on each highlight and apply the fix.&lt;/li&gt; &lt;li&gt;For Smarty: a&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;.tpl&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;with bare&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;{if &amp;hellip;}&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;should offer delimiter conversion.&lt;/li&gt; &lt;li&gt;Goffy / wgSimpleAcc shapes:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;test-fixtures/wgsimpleacc_shapes.php&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(namespaced&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;die&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;guard +&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;while (list = fetchRow)&lt;/code&gt;) and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;test-fixtures/index_404_stub.php&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(must&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;not&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;warn).&lt;/li&gt; &lt;/ol&gt; &lt;p dir=&quot;auto&quot;&gt;All inspections live under&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Settings &amp;rarr; Editor &amp;rarr; Inspections &amp;rarr; XOOPS&lt;/strong&gt;. Each can be switched off or downgraded there, and the Inspection ID below is what you put in a&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;@noinspection&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;comment or an&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;.idea/inspectionProfiles&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;file. Every inspection is silent in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;vendor/&lt;/code&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;templates_c/&lt;/code&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;cache/&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;node_modules/&lt;/code&gt;.&lt;/p&gt; &lt;div class=&quot;markdown-heading&quot; dir=&quot;auto&quot;&gt; &lt;h3 class=&quot;heading-element&quot; dir=&quot;auto&quot; tabindex=&quot;-1&quot;&gt;4.1 Deprecated database API &amp;mdash;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;XoopsDeprecatedDbApi&lt;/code&gt;&lt;/h3&gt; &lt;a id=&quot;user-content-41-deprecated-database-api--xoopsdeprecateddbapi&quot; class=&quot;anchor&quot; aria-label=&quot;Permalink: 4.1 Deprecated database API &amp;mdash; XoopsDeprecatedDbApi&quot; href=&quot;https://github.com/XOOPS/phpstorm-plugin/blob/master/TUTORIAL.md#41-deprecated-database-api--xoopsdeprecateddbapi&quot;&gt;&lt;svg data-component=&quot;Octicon&quot; class=&quot;octicon octicon-link&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt; &lt;p dir=&quot;auto&quot;&gt;Flags&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;queryF()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;quoteString()&lt;/code&gt;. Use&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;query()&lt;/code&gt;&lt;span&gt;&amp;nbsp;...</description>
                <pubDate>Wed, 23 Sep 2026 04:23:08 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367651</guid>
            </item>
                        <item>
                <title>ModuleTools 1.5 for XOOPS 2.8.0 [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367645</link>
                <description>Xoops Development::ModuleTools 1.5 for XOOPS 2.8.0&lt;br&gt;
&lt;img src=&apos;https://xoops.org/uploads/images/img6ab213e380e25.jpg&apos; border=&apos;0&apos; alt=&apos;Original Image&apos; onload=&quot;JavaScript:if(this.width&gt;800) this.width=800&quot; /&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;strong&gt;ModuleTools: the shared toolbox every XOOPS 2.8.0 module now gets for free&lt;/strong&gt;&lt;/span&gt;&lt;br&gt; &lt;br&gt;If you have ever built a XOOPS module, you know the ritual. Copy a &lt;em&gt;class/Common/&lt;/em&gt; folder from the last module. Paste in the install helpers, the version checks, the admin table code, the confirmation dialog, the breadcrumb builder. Fix the namespace. Hope nothing drifted since the last copy.&lt;br&gt; &lt;br&gt;With XOOPS 2.8, that ritual is over. &lt;strong&gt;ModuleTools&lt;/strong&gt; ships inside &lt;strong&gt;XOOPS 2.8.0 Core&lt;/strong&gt; as &lt;em&gt;&lt;strong&gt;Xoops\ModuleTools\*&lt;/strong&gt;&lt;/em&gt;, autoloaded on every request. There is nothing to install, nothing to activate, and no helper module to keep in sync. Your module just calls it.&lt;br&gt; &lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;What is in the box&lt;/strong&gt;&lt;/span&gt;&lt;br&gt; &lt;br&gt;ModuleTools is the successor to the mTools helper module, rebuilt as a proper library. It gathers the services modules used to carry as copied files:&lt;br&gt; &lt;br&gt; &lt;br&gt;*  &lt;strong&gt;Install and update hooks.&lt;/strong&gt; Directory checks, file checks, dependency and version guards, sample-data buttons, and an update checker that reads your GitHub releases.&lt;br&gt;*  &lt;strong&gt;Admin pages in minutes.&lt;/strong&gt; Object tables, tree tables, single-record views, CSV export, and a controller that handles create, edit, delete and uploads from one form definition.&lt;br&gt;*  &lt;strong&gt;Objects and forms.&lt;/strong&gt; A dynamic object base with SEO fields and a form builder that turns your handler&apos;s metadata into a ready XoopsThemeForm.&lt;br&gt;*  &lt;strong&gt;Front-end helpers.&lt;/strong&gt; Breadcrumbs, letter navigation, pagination, text truncation with intact HTML, social bookmarks, syntax highlighting, image resizing.&lt;br&gt;*  &lt;strong&gt;Permissions.&lt;/strong&gt; Per-item group permissions with a clean gateway, so your module never writes to the permission table by hand.&lt;br&gt;*  &lt;strong&gt;Module lifecycle.&lt;/strong&gt; A ModuleContext value object for paths, URLs and constants, a namespace autoloader that also understands legacy filenames, and a cloner that turns one module into the starting point for the next.&lt;br&gt; &lt;br&gt; &lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;&lt;/span&gt;&lt;br&gt; &lt;br&gt;&lt;strong&gt;Less code to own.&lt;/strong&gt; A typical converted module drops dozens of copied files. Fewer files means fewer places for a bug to hide and fewer places to patch when one is found.&lt;br&gt; &lt;br&gt;&lt;strong&gt;Security fixes land once.&lt;/strong&gt; When the confirmation dialog or the CSV export is hardened, every module on the site gets the fix on the next Core update. No module release required.&lt;br&gt; &lt;br&gt;&lt;strong&gt;Modern PHP, tested.&lt;/strong&gt; The library targets PHP 8.4, passes PHPStan at level 6, and ships a growing PHPUnit suite that includes consumer tests run against real modules inside a XOOPS tree.&lt;br&gt; &lt;br&gt;&lt;strong&gt;No migration cliff.&lt;/strong&gt; Existing modules keep working. ModuleTools registers lazy aliases for the stable &lt;em&gt;XoopsModules\Mtools\*&lt;/em&gt; names, so a module written for the mTools module runs on 2.8 unchanged. When you are ready, the migration guide walks through swapping copied classes for library calls, and a Rector rule set does most of the typing.&lt;br&gt; &lt;br&gt;&lt;strong&gt;Still there for 2.7.&lt;/strong&gt; Sites on XOOPS 2.7.x keep the separately distributed mTools module with the same class names. Write against the API once and it runs on both.&lt;br&gt; &lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;Getting started&lt;/strong&gt;&lt;/span&gt;&lt;br&gt; &lt;br&gt;On XOOPS 2.8 the library is already loaded. In a module, grab your XMF helper and go:&lt;br&gt; &lt;br&gt;&lt;div class=&quot;xoopsCode&quot;&gt;&lt;code style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;use&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;XmfModuleHelper&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;...</description>
                <pubDate>Tue, 22 Sep 2026 06:26:12 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367645</guid>
            </item>
                        <item>
                <title>XOOPS 2.7.4-Beta2 with 2FA Released for Testing [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367643</link>
                <description>Xoops Development::XOOPS 2.7.4-Beta2 with 2FA Released for Testing&lt;br&gt;
&lt;img src=&apos;https://xoops.org/uploads/images/img6aa63137209b4.jpg&apos; border=&apos;0&apos; alt=&apos;Original Image&apos; onload=&quot;JavaScript:if(this.width&gt;800) this.width=800&quot; /&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;strong&gt;XOOPS 2.7.4 Beta 2 — Two-Factor Authentication (2FA) comes to the Core&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;The XOOPS Development Team is pleased to announce &lt;strong&gt;XOOPS 2.7.4 Beta 2&lt;/strong&gt;. The headline feature is two-factor authentication (2FA) built into the core: every member can protect their account with a second step at login, using an authenticator app or a code sent by e-mail. This is a beta for testing; please try it on a staging copy of your site and report what you find.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;Two-factor authentication&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;* Two methods: a time-based authenticator app (Google Authenticator, Microsoft Authenticator, Aegis, FreeOTP, or any password manager that generates TOTP codes), or a six-digit code mailed to the member&apos;s address&lt;br&gt;* Ten one-time recovery codes at enrolment, for the day the phone or the mailbox is out of reach&lt;br&gt;* Five wrong codes lock the second step for fifteen minutes; the member is notified by e-mail&lt;br&gt;* Remember-me cookies are bound to the enrolled factor, so a reset invalidates them&lt;br&gt;* Members manage everything themselves from Edit Account, including disabling and replacing recovery codes&lt;br&gt;* Administrators reset a member&apos;s factor from Users, and an operator locked out of the site has a documented escape hatch&lt;br&gt;* Off by default. Switch it to &quot;Optional&quot; in System Preferences and every member may enrol; nobody is forced&lt;br&gt;* Secrets are encrypted at rest with a site key; mailed codes are stored hashed and expire after ten minutes&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;Also in this beta&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;* The login flow was split into reusable pieces, and every login path that cannot show a challenge (the upgrade wizard, XML-RPC, the SSL popup) refuses an account that must present its factor&lt;br&gt;* Account deletion removes the member&apos;s tokens and factor row, and no longer fails half-way&lt;br&gt;* A MySQL integration job now runs the concurrency and installed-site tests on PHP 8.2 through 8.5 on every change&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;Upgrading from 2.7.3&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;Copy the new htdocs/ files over the web root and &lt;strong&gt;run the upgrade wizard&lt;/strong&gt;; it creates the user_2fa table and the new preference. Two-factor needs the PHP sodium extension, which the wizard checks for. No mainfile.php changes are needed. Operations notes: docs/2fa-operations.md in the package.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;System requirements&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;* PHP &gt;= 8.2.0 (PHP 8.4 or 8.5 recommended, prepared for 8.6)&lt;br&gt;* MySQL &gt;= 5.7.8 or MariaDB &gt;= 10.5 (a supported MySQL 8.x or MariaDB LTS recommended)&lt;br&gt;* Apache 2.4+ or nginx&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;strong&gt;MORE INFO: &lt;a href=&quot;https://xoops.org/modules/publisher/item.php?itemid=6132&quot; rel=&quot;noopener external&quot; title=&quot;&quot;&gt;Read our News Release&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; &lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;DOWNLOAD&lt;/strong&gt;&lt;/span&gt;: You can download the release from here: &lt;a href=&quot;https://github.com/XOOPS/XoopsCore27/releases&quot; target=&quot;_blank&quot; rel=&quot;external noopener nofollow&quot;&gt;https://github.com/XOOPS/XoopsCore27/releases&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thank you to everyone testing the betas. Report issues at &lt;a href=&quot;https://github.com/XOOPS/XoopsCore27/issues&quot; target=&quot;_blank&quot; rel=&quot;external noopener nofollow&quot;&gt;https://github.com/XOOPS/XoopsCore27/issues&lt;/a&gt;</description>
                <pubDate>Sun, 13 Sep 2026 10:20:06 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367643</guid>
            </item>
                        <item>
                <title>XOOPS 2.7.4-Beta1 (ready for PHP 8.6) [by Mamba]</title>
                <link>https://xoops.org/modules/newbb/viewtopic.php?post_id=367642</link>
                <description>Xoops Development::XOOPS 2.7.4-Beta1 (ready for PHP 8.6)&lt;br&gt;
&lt;img src=&apos;https://xoops.org/uploads/images/img6aa233b27548e.jpg&apos; border=&apos;0&apos; alt=&apos;Original Image&apos; onload=&quot;JavaScript:if(this.width&gt;800) this.width=800&quot; /&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;strong&gt;XOOPS 2.7.4 Beta 1 — session and comment hardening&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;The XOOPS Development Team announces &lt;strong&gt;XOOPS 2.7.4 Beta 1&lt;/strong&gt;, a security-focused update to the 2.7 line. It closes seven authorisation and session gaps found in a review of the 2.7.3 core, updates the bundled TinyMCE 7 to a release with content-sanitisation fixes, and repairs an upgrade-wizard fault that could stall a site on an old patch. XOOPS 2.7.4 runs on PHP 8.2 through 8.5.&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;Ready for PHP 8.6&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;* Complete session save-handler contract: create_sid() ahead of its PHP 9.0 requirement, new sessions survive 8.6&apos;s updateTimestamp() routing, session.use_strict_mode pinned to the 8.6 default today&lt;br&gt;* Deprecations cleared ahead of time: constructor value-returns (guarded by a repository-wide test), is_long(), curl_close(), imagedestroy()&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;System requirements&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;* PHP &gt;= 8.2.0 (PHP 8.4 or 8.5 recommended, prepared for 8.6)&lt;br&gt;* MySQL &gt;= 5.7.8 or MariaDB &gt;= 10.5 (a supported MySQL 8.x or MariaDB LTS recommended)&lt;br&gt;* Apache 2.4+ or nginx&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;MORE INFO: &lt;a href=&quot;https://xoops.org/modules/publisher/item.php?itemid=6131&quot; rel=&quot;noopener external&quot; title=&quot;&quot;&gt;Read our News Release&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; &lt;br&gt;&lt;br&gt;&lt;strong&gt;DOWNLOAD&lt;/strong&gt;: You can download the release from here: &lt;a href=&quot;https://github.com/XOOPS/XoopsCore27/releases&quot; target=&quot;_blank&quot; rel=&quot;external noopener nofollow&quot;&gt;https://github.com/XOOPS/XoopsCore27/releases&lt;/a&gt;</description>
                <pubDate>Thu, 10 Sep 2026 05:11:37 +0000</pubDate>
                <guid>https://xoops.org/modules/newbb/viewtopic.php?post_id=367642</guid>
            </item>
                    </channel>
    </rss>
</xml>
