[TikiWiki-commits] [Git][tikiwiki/tiki][27.x] [BP][FIX][UX] Improve SubscribeNewsletter input group layout and icon alignment

"Olivier Kango \(@olivierkango\) via TikiWiki-cvs" <[email protected]>
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <69b91afc6e914_3b18c7c0260bc@gitlab-sidekiq-low-urgency-cpu-bound-v2-7fb98cc9d4-56lmw.mail>

Olivier Kango pushed to branch 27.x at Tiki Wiki CMS Groupware / Tiki


Commits:
99f24f50 by Olivier Kango at 2026-03-17T11:04:50+02:00
[BP][FIX][UX] Improve SubscribeNewsletter input group layout and icon alignment
---
* [BP][FIX][UX] Improve SubscribeNewsletter input group layout and icon alignment
---
* [BP][FIX][UX] Improve SubscribeNewsletter input group layout and icon alignment
---
* [FIX][UX] Improve SubscribeNewsletter input group layout and icon alignment
---
* [FIX][UX] DRY subscribe newsletter button label rendering

* [FIX] Load plugin CSS via inline link tag to avoid headers-already-sent error

* [FIX] Enter your email address

* [UX] Shorten email input placeholder text

* [FIX][UX] Improve SubscribeNewsletter input group layout and icon alignment

* [FIX][UX] Prevent SubscribeNewsletter wikisyntax parsing from breaking module layout

* [FIX][UX] Improve SubscribeNewsletter input group layout and icon alignment

See merge request tikiwiki/tiki!9754

See merge request tikiwiki/tiki!9764

(cherry picked from commit fbf296c5cc9a0655253e80b938be6eb2f0688ecb)

See merge request tikiwiki/tiki!9765

(cherry picked from commit 708a0d7e3e4608fceb84d15023a02240156af55d)

See merge request tikiwiki/tiki!9766

- - - - -


3 changed files:

- lib/wiki-plugins/wikiplugin_subscribenewsletter.php
- templates/wiki-plugins/wikiplugin_subscribenewsletter.tpl
- + themes/base_files/feature_css/wikiplugin-subscribenewsletter.css


Changes:

=====================================
lib/wiki-plugins/wikiplugin_subscribenewsletter.php
=====================================
@@ -87,6 +87,7 @@ function wikiplugin_subscribenewsletter($data, $params)
     global $prefs, $user;
     $userlib = TikiLib::lib('user');
     $tikilib = TikiLib::lib('tiki');
+    $parserlib = TikiLib::lib('parser');
     $smarty = TikiLib::lib('smarty');
     global $nllib;
     include_once('lib/newsletters/nllib.php');
@@ -150,6 +151,7 @@ function wikiplugin_subscribenewsletter($data, $params)
     $wpSubscribe = '';
     $wpError = '';
     $subscribeEmail = '';
+    $subscribeThanks = '';
     $useCaptcha = $params['usecaptcha'];
     if ($params['usecaptcha'] !== 0) {  // To keep previous behaviour with previous versions where the parameter doesn't exist
         $useCaptcha = 1;
@@ -175,7 +177,7 @@ function wikiplugin_subscribenewsletter($data, $params)
                 }
                 if ($result) {
                     $wpSubscribe = 'y';
-                    $smarty->assign('subscribeThanks', empty($thanks) ? $data : $thanks);
+                    $subscribeThanks = empty($thanks) ? $data : $thanks;
                     if ($info['validateAddr'] == 'y' && ! $user) {
                         // For anonymous users with email validation required
                         $smarty->assign('confirmationSent', true);
@@ -191,19 +193,27 @@ function wikiplugin_subscribenewsletter($data, $params)
             }
         }
     }
+    if ($params['wikisyntax'] == 1 && ! empty($subscribeThanks)) {
+        $subscribeThanks = $parserlib->parse_data($subscribeThanks, ['is_html' => true]);
+    }
+
     $smarty->assign_by_ref('wpSubscribe', $wpSubscribe);
     $smarty->assign_by_ref('wpError', $wpError);
+    $subscribeButtonLabel = empty($button) ? $data : $button;
+    if (empty($subscribeButtonLabel)) {
+        $subscribeButtonLabel = tra('Subscribe to the newsletter:') . ' ' . $info['name'];
+    }
+
+    $smarty->assign('subscribeThanks', $subscribeThanks);
+    $smarty->assign('subscribeThanksIsHtml', $params['wikisyntax'] == 1);
     $smarty->assign('subscribeEmail', $subscribeEmail);
-    $smarty->assign('subcribeMessage', empty($button) ? $data : $button);
+    $smarty->assign('subscribeButtonLabel', $subscribeButtonLabel);
     $smarty->assign('inmodule', ! empty($inmodule) ? "moduleSubscribeNL" : "");
     $smarty->assign_by_ref('subscribeInfo', $info);
     $smarty->assign('useCaptcha', $useCaptcha);
     $smarty->assign('alreadySubscribed', $alreadySubscribed);
     $smarty->assign('alreadySubscribedMessage', $alreadySubscribedMessage);
     $res = $smarty->fetch('wiki-plugins/wikiplugin_subscribenewsletter.tpl');
-    if (isset($params["wikisyntax"]) && $params["wikisyntax"] == 1) {
-        return $res;
-    } else {        // if wikisyntax != 1 : no parsing of any wiki syntax
-        return '~np~' . $res . '~/np~';
-    }
+
+    return '~np~' . $res . '~/np~';
 }


=====================================
templates/wiki-plugins/wikiplugin_subscribenewsletter.tpl
=====================================
@@ -2,7 +2,11 @@
     {if empty($subscribeThanks)}
         {tr}Subscription confirmed!{/tr}
     {else}
-        {$subscribeThanks|escape}
+        {if !empty($subscribeThanksIsHtml)}
+            {$subscribeThanks nofilter}
+        {else}
+            {$subscribeThanks|escape}
+        {/if}
     {/if}
     
 {elseif $alreadySubscribed}
@@ -11,6 +15,7 @@
     {/remarksbox}
 
 {else}
+    <link rel="stylesheet" href="themes/base_files/feature_css/wikiplugin-subscribenewsletter.css">
     <form name="wpSubscribeNL" method="post">
         <input type="hidden" name="wpNlId" value="{$subscribeInfo.nlId|escape}">
 
@@ -20,14 +25,15 @@
             {/remarksbox}
         {/if}
 
-        <div class="d-flex flex-row flex-wrap align-items-center row">
+        <div class="form-inline row wp-subscribe-inline">
             <div class="input-group">
-                <input type="email" class="form-control fa" id="wpEmail" name="wpEmail" size="80" value="{$subscribeEmail|escape}" placeholder="{tr}Enter your email address{/tr}" required>
-                {if empty($subcribeMessage)}
-                    <input type="submit" class="btn btn-primary" name="wpSubscribe" value="{tr}Subscribe to the newsletter:{/tr} {$subscribeInfo.name}">
-                {else}
-                    <input type="submit" class="btn btn-primary" name="wpSubscribe" value="{$subcribeMessage|escape}">
-                {/if}
+                <div class="wp-subscribe-email-wrap">
+                    <span class="wp-subscribe-email-icon"><i class="fa fa-envelope" aria-hidden="true"></i></span>
+                    <input type="email" class="form-control" id="wpEmail" name="wpEmail" size="50" value="{$subscribeEmail|escape}" placeholder="{tr}Enter your email address{/tr}" required>
+                </div>
+                <div class="input-group-append">
+                    <input type="submit" class="btn btn-primary" name="wpSubscribe" value="{$subscribeButtonLabel|escape}">
+                </div>
             </div>
         </div>
 


=====================================
themes/base_files/feature_css/wikiplugin-subscribenewsletter.css
=====================================
@@ -0,0 +1,43 @@
+.wp-subscribe-inline .input-group {
+    display: flex;
+    flex-wrap: nowrap;
+    width: 100%;
+    align-items: stretch;
+}
+
+.wp-subscribe-inline .wp-subscribe-email-wrap {
+    position: relative;
+    flex: 1 1 auto;
+}
+
+.wp-subscribe-inline .wp-subscribe-email-icon {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 1rem;
+    display: flex;
+    align-items: center;
+    color: var(--secondary, #6c757d);
+    pointer-events: none;
+    z-index: 3;
+}
+
+.wp-subscribe-inline .wp-subscribe-email-wrap #wpEmail {
+    height: 100%;
+    width: 100%;
+    padding-left: 2.75rem;
+    border-top-right-radius: 0;
+    border-bottom-right-radius: 0;
+}
+
+.wp-subscribe-inline .input-group-append,
+.wp-subscribe-inline .input-group-append .btn {
+    display: flex;
+    align-items: stretch;
+}
+
+.wp-subscribe-inline .input-group-append .btn {
+    border-top-left-radius: 0;
+    border-bottom-left-radius: 0;
+    margin-left: -1px;
+}



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/99f24f506b56cca31fd975dcdccc7e2f69825f87

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/99f24f506b56cca31fd975dcdccc7e2f69825f87
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.