Overriding template in Persona theme
-
You should be able to use nodebb-plugin-customize for this.
-
I guess I'm a little confused here -- I've tried a few things and none of them seem to be panning out:
I have tried editing /partials/lastpost.tpl using customizer as follows and it didn't seem to do literally anything
<p> <a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(posts.user, "sm", true)}</a> <a class="permalink" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->"> {teaser.topic.title} - <small class="timeago" title="{../timestampISO}"></small> </a> </p>
What my understanding teaser.topic.title is the correct path to include the title and when I check the source it looks like
<small class="timeago">
Seems to be where the "about 10 hours ago" link is -- I'm not sure what I might be doing wrong here.
-
Did you click the button in the bottom right after making the customization, them rebuild and restart nodebb?
-
did the success confirmation come up after clicking the build button in the customize plugin page?
-
@PitaJ said in Overriding template in Persona theme:
did the success confirmation come up after clicking the build button in the customize plugin page?
Yes it did. It said success, I rebuilt and restarted and it didn't seem to do anything. I'm not sure if {teaser.topic.title} is supported, but I was basing the availability of it off of this: https://github.com/NodeBB/nodebb-theme-persona/issues/408
So I'm not really sure where to go from here...
-
Oh! Yeah this doesn't look like a problem with customize, but the issue seems to be that the path you're trying to use isn't valid. Your picture seems to contain the dash, just not the title. So the template override is working.
Try
{../title}
or{../topic.title}
-
@PitaJ If I mess with catagories.tpl directly I can see changes on the page -- but I cannot for the life of me seem to get the title to appear where the timestamp normally does. I tried {../title} and topic.title, teaser.topic.title -- restarting and rebuilding after each iteration to no avail....
-
So, I straight up stole some code from another template and it worked. Just to give credit where it's due and to give someone who eventually stumbles onto this thread some closure (as this seems like I'm probably not the only person that would want the thread title as part of the link)
I ripped my code from here specifically: https://github.com/ItzMeDwii/nodebb-theme-azn-oxideold/blob/master/templates/partials/categories/lastpost.tpl So special shoutouts to https://github.com/ItzMeDwii/nodebb-theme-azn-oxideold
What I did to make it work:
I modified (using customizer) /partials/categories/lastpost.tpl from
<div class="card" style="border-color: {../bgColor}"> {{{each ./posts}}} <!-- IF @first --> <div component="category/posts"> <p> <a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(posts.user, "sm", true)}</a> <a class="permalink" href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->"> <small class="timeago" title="{../timestampISO}"></small> </a> </p> <div class="post-content"> {../content} </div> </div> <!-- ENDIF @first --> {{{end}}} <!-- IF !../posts.length --> <div component="category/posts"> <div class="post-content"> [[category:no_new_posts]] </div> </div> <!-- ENDIF !../posts.length --> </div>
To the following:
<div class="card" style="border-color: {../bgColor}"> {{{each ./posts}}} <!-- IF @first --> <div component="category/posts"> <a href="{config.relative_path}/user/{../user.userslug}">{buildAvatar(posts.user, "sm", true)}</a> <div class="title"> <a href="{config.relative_path}/topic/{../topic.slug}<!-- IF ../index -->/{../index}<!-- ENDIF ../index -->">{../topic.title}</a> - <small class="timeago" title="{../timestampISO}"></small> </div> <div class="post-content"> {../content} </div> </div> <!-- ENDIF @first --> {{{end}}} <!-- IF !../posts.length --> <div component="category/posts"> <div class="post-content"> [[category:no_new_posts]] </div> </div> <!-- ENDIF !../posts.length --> </div>
The resulting markup looks like this:
with "borderlands 3 LFG - 4 minutes ago" being a clickable link.Adding an override (appearance -> custom content) of
.card .title{ font-weight: 700; }
Will give you a nicer bolding than what you see there, but you still may want some additional styling.
I am not at all sure why topic.title wasn't working without being in its own div, but it's working now.
Thanks,
-
@Damien-Jay nice job man. glad you figured it out