[3.0] Theme - #7933
Conversation
| echo User::$me->avatar['image']; | ||
|
|
||
| echo '<span class="textmenu">', User::$me->name, '</span></a> | ||
| echo '</a> |
There was a problem hiding this comment.
If we do this for the avatar image, shouldn't we use a alt text for the name?
There was a problem hiding this comment.
Should use href or url then.
Or should 'image' provide it by default? It would be good in case an external avatar is missing in other parts of the forum.
There was a problem hiding this comment.
I think either is valid. I believe it just needs something to be valid for screen readers. Since its a link to the users profile and we removed the name, the alt should have it.
There was a problem hiding this comment.
Then I think 'image' should provide the alt text by default. An external avatar could suddenly not load or disappear, would be good to have it.
b7c6385 to
3a78afe
Compare
|
I notice that a few forms would disable textareas on submit, such as the posting form. I've changed this to do all forms by using the new HTML property to make the entire form inert. |
3ba4ff5 to
c823a49
Compare
|
I’m working on this Can be fixed later too, but also requires some tweaks.
I don’t have a preference, we might discuss it later for sure. |
2322f68 to
ada494b
Compare
|
@live627 Can you rebase this or merge and fix conflicts? |
|
We have this pending Will start sending more in upcoming weeks, but it could be merged, rest of changes are more focused so can be in separated PR's |
|
Once I can get around to testing and merging that, I'll rebase this branch again |
| <div class="windowbg form_grid"> | ||
| <p class="descbox">', Lang::$txt['authentication_options'], ':</p> | ||
| <p> | ||
| <input type="radio" name="reminder_type" id="reminder_type_email" value="email" checkeiv></label> |
| <input type="submit" value="', Lang::$txt['save'], '" name="save_reserved_names" tabindex="', Utils::$context['tabindex']++, '" class="button"> | ||
| <div class="form_grid"> | ||
| <div> | ||
| <label for="matchword">', Lang::$txt['admin_match_whole'], '</div> |
There was a problem hiding this comment.
<label>...</div> => <label>...</label>?
|
@jdarwood007 I moved some of the login javascript to its own file but don't know how to test cors requests. |
|
When this is closer to ready I can check it. You need to run 2 domains (or 2 subdomains) and have the forum on one and the script on another. A simple SSI page where you can open the user area popup is good enough for most things. Sending credentials such as on the login form may also need to be tested, but when you can open the user area, the CORS request works. |
# Conflicts: # Themes/default/Search.template.php
# Conflicts: # Sources/Profile.php # Themes/default/BoardIndex.template.php # Themes/default/Display.template.php # Themes/default/ManageNews.template.php # Themes/default/MessageIndex.template.php # Themes/default/Post.template.php # Themes/default/Profile.template.php # Themes/default/index.template.php
|
@Sesquipedalian @sbulen @jdarwood007 @live627 — I have taken a run at the split, and I think it is tractable. First PR is up: #9332. Why the earlier attempts stalled@sbulen is right that the history cannot be split. 151 commits, most of them merges, changes layered on changes. Trying to separate commits is the salt-and-pepper problem. But the history is not what needs splitting. The end state is. And that turns out to be easy, because this branch is currently in good shape: @jdarwood007 has kept it merged with So the procedure is:
No cherry-picking, no rebasing, and the conflict burden goes down every round instead of up. When I would suggest keeping this PR open as the tracking issue for the series, marked as not-for-merge, so the attribution to @live627, @TwitchisMental, @DiegoAndresCortes, @sbulen and @jdarwood007 stays visible. Three things that are no longer trueWorth flagging, because they change what actually needs doing:
The proposed breakdownGrouped into waves, and numbered within each wave — A wave is a set of parts that can be reviewed in parallel. The next wave starts from wherever the previous one ended up, so nothing depends on guessing the shape of the whole series in advance. Wave 1 — no theme template changes at all. Reviewable now, in any order:
Two more belong to this group but are not ready: the editor/SCEditor work needs subdividing, and the drafts work has problems of its own. Details in my follow-up comment. Wave 2 — the CSS foundation. Sequential, and the first one gates the rest:
Wave 3 — the wide-ranging one. Wave 4 — one part per area, independent of each other once wave 3 lands: calendar, admin centre, board index, message index, topic display and postbit, posting, profile, personal messages, login/register/reminder, and the long tail (Search, Stats, Memberlist, Recent, Help, Errors, Moderation, …). About #9332It supersedes #8891, which was @live627's own attempt at exactly this part back in August. That one has gone stale — it still refers to Splitting also surfaces things that were invisible inside the big diff. Three examples from this one part alone:
That is the argument for the split in a nutshell — those were not findable at 110 files. I will keep working through wave 1. Happy to change the grouping if you would rather have it carved up differently. |
|
@Sesquipedalian — status update on the split, and a few questions on how you want to proceed. Open so farWave 1 is up, titled so they are easy to track. Numbering is per wave, with no running total — I do not know how many parts this takes, and a guessed denominator would only be wrong later.
All four are mergeable and were tested against a running forum, not just linted — and not only one at a time. I keep a branch that is Only #9333 touches a theme template, and it is the template the change is about. Two parts I dropped rather than portedSelf-hosting FontAwesome. This branch adds eight webfont files, but its own It did turn up a separate bug though: on Moving Two parts I stopped onThe editor and drafts work is a different size from the rest, and it needs subdividing before it is reviewable. Drafts is separable in principle —
There is also a leftover Fixing those and checking them against the server contract is real work rather than porting, so I would rather not push it as part of a "split up the existing PR" series without asking first. The editor part splits further than I had it. A lot of the 619-line reduction in A pattern worth mentioningEvery part so far has turned up something that was invisible at 110 files. The error log's Select and Expand buttons would have silently stopped working. None of that was findable in the combined diff. It is the best argument I have for doing this the slow way. Questions
|
…and build their buttons in JS The code BBCode wrapped its content in a bare <code class="bbc_code">, and emitted the "Select" and "Expand" links from PHP even when JavaScript was unavailable to make them work. Tabs and leading/trailing line breaks had to be fixed up by hand, in both the parser and the editor. Wrap the content in a <pre> instead, so the browser preserves the whitespace, and pass the button labels along as data attributes. script.js now builds the buttons from those attributes, which means they only appear when they can actually do something, and the "Expand" button only appears when the block is taller than its maximum height. Migrates every consumer of the old markup: the error log, the SSI examples page, and the profile export. smfSelectText() has no callers left, so it goes; UpgradeTemplate.php probes for attachBbCodeEvents() instead to detect whether script.js loaded. Wave 1, part 1 of breaking up SimpleMachines#7933. Supersedes SimpleMachines#8891. Co-Authored-By: John Rayes <live627@gmail.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…e pick-one form The routine and database maintenance pages each hand-wrote one heading, one form and one submit button per task, which is why adding a task meant editing the template. Replace both with a single template_maintain_options() driven by Utils::$context['options'], built from the sub-action's own activity list so the two cannot drift apart. A task whose strings are not named maintain_<activity> supplies its own title and info. This also fixes the "Unable to load the '' template" error reported on SimpleMachines#7933: the sub-actions that have no 'template' key left Utils::$context['sub_template'] set to an empty string. Adds text_title and convert_to_suggest_text: offering to convert the messages body column back to TEXT needs a heading, and needs to warn when the maximum message length would no longer fit. Renames maintain_errors to maintain_repair to match its activity name; maintain_cache keeps its name because the admin home page uses it too. Wave 1, part 2 of breaking up SimpleMachines#7933. Co-Authored-By: John Rayes <live627@gmail.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…rollbar The plugin and its stylesheet are loaded on every page for every logged-in member, and nothing calls customScrollbar(). Remove both files, the two loader calls, and the credit for a library that is no longer bundled. Wave 1, part 3 of breaking up SimpleMachines#7933. Co-Authored-By: John Rayes <live627@gmail.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…et.js plugins Mentions were the last thing pulling jquery.atwho.min.js and jquery.caret.min.js in, on the post and topic display pages. Replace both with vanilla ports that keep the same API, and rewrite mentions.js to match: fetch() instead of $.ajax(), DOMParser instead of jQuery's XML handling. Binding also changes. mentions.js used to attach on document ready by hunting for .sceditor-container, which meant guessing when the editor had finished setting itself up. It is now an SCEditor plugin, so it attaches on signalReady to both the source textarea and the WYSIWYG iframe body, and the plain textarea case is handled separately for when SCEditor is not present at all. The stylesheet the plugin needs is now loaded explicitly rather than relying on the rules being in index.css. Wave 1, part 4 of breaking up SimpleMachines#7933. Co-Authored-By: John Rayes <live627@gmail.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
@albertlast However, as we merge up the theme changes, we can merge them into this one and try to see what is left as we get closer. |
|
Well i don't think you need to invest any more time into it, |
|
If thats what we thihk we should do. I did just send up a few typos from the last merge that I didn't catch. |
|
When you look at the pr, |
|
@Sesquipedalian — wave 1 is finished. Six PRs, all mergeable, all checks green.
They were tested together, not only one at a time: I keep a branch of One overlap to know about at merge time: #9337 and #9335 both add to the editor's The thing I did not expectFour of the six parts turned out to be repairs, not moves. These are all broken on
None of it was findable in the combined diff. That is the clearest argument I have for doing the split this way. Five parts dropped, with reasonsI would rather not carry these forward:
If you would rather any of these were ported as-is and the problems raised separately, say so and I will. One bug that needs a homeUpdating an existing draft never writes. The client sends the right request and the server answers with a fresh "last saved" time, but the row does not change. In the same request the database layer can That is server-side and has nothing to do with the theme. It was simply invisible until autosave got far enough to save a first draft. Right now it is only written up inside #9337, so it will be lost if that PR is reworked — it should probably be its own issue. Happy to open one. Where that leaves thingsWave 2 is the CSS foundation: design tokens and The questions from my last comment are still open, and the one that matters most now is whether fixes like the four above should keep going inside the split PRs, or be split out as bug PRs against Happy to start wave 2, or to hold until you have looked at what is open. |
|
Here's a cleaner version of the ending that reads a bit more naturally while keeping the same intent:
Works for me, but I'd like confirmation from @Sesquipedalian, as he is the lead developer, although I might end up being the one to review and merge these.
Let's wait on wave 2 until wave 1 has been reviewed and merged. @albertlast, thanks for taking this on, very helpful, ja? @jdarwood007, let's consider this branch closed. Please don't make any further commits to it; any additional work should go into the split PRs instead. |







This is the new theme started by @TwitchisMental
I still need to convert several form grids to use CSS grids instead of floats. Also the grids abuse definition list markup, something tat has always annoyed me from the very beginning.
Submitting as a draft now to get early feedback.