The obligatory Christmas update.

Nao

  • Dadman with a boy
  • Posts: 16,012
The obligatory Christmas update.
« on December 10th, 2014, 03:58 PM »
Ho ho ho, hello there! Merry something, I don't know if it's too early, I'm not too good at social things.

As you probably know from my earlier blog post, my life these last few months has been quite hectic, me being a new father and all. Of course, Wedge had to take a back seat and I focused more on real life. I guess when things cooled down a bit, I wasn't so much in a mood to work again, and decided to dive again into one of my other passions, and a much less brain-melting passion at that, movies and TV. Bought myself a new quality TV, and discovering the joys of 1080p. I even went to my local theater yesterday (for the first time in like, 2 years ?!), because I really wanted to watch Interstellar. Which I loved, if you're curious.

I also had a couple of requests regarding a 'proper' beta for Wedge. I'm not a strong believer in compartmentalizing versions or whatever, and with my current lack of time/interest, I can't bring myself to doing proper release control anyway. All I can say is: the day Wedge went public (and it's already been nearly a year!), I considered it not 'alpha', not 'beta', but simply 'public'. That is, ready for production use. You just need to keep in mind that if you want to use Wedge, it's in your best interest to install a Git client and keep a copy of the Wedge repo somewhere, so that you can upload updated files as they're made available.

Short of getting paid for my work on the software (and I have 4 years of expertise on the subject, without even including my SMF years, so I really deserve some kind of repayment), you'll have to settle on my occasional bursts of passion to keep the project going.

For instance, right after I came back from Interstellar, around midnight, I decided I couldn't go to bed after seeing scientists do their math, and I did mine. As a result, plugin authors should now be able to edit Wedge source files the same way they can edit SMF files through mods. This should, basically, save you the hassle of having to request for hooks wherever they aren't conveniently being offered to you. If you're a Wedge plugin author wannabe, but you don't like the idea of having to rewrite your SMF mods from the ground up, that feature might be of interest to you. Have fun! And don't forget that it's not finalized, so I may have to rewrite it substantially after I get some feedback.

Re: The obligatory Christmas update.
« Reply #1, on December 10th, 2014, 05:08 PM »Last edited on December 10th, 2014, 05:14 PM
I really love the idea behind it, but didnt test it yet. But will be definetly useful for me. It will replace some "additional hooks" :cool:. Never coded for SMF, whats the proper way to use it? Something like loadPluginSource('...', '...); somePluginFunction($arg1, $arg2...);?

Re: The obligatory Christmas update.
« Reply #2, on December 10th, 2014, 06:41 PM »
As I said in the commit log, you need to create a mods.xml file in your plugin folder, then populate it with, for instance:

Code: [Select]
<file name="Home.php">
<operation>
<search position="after">loadTemplate('Home');</search>
<add>
echo 'It WORRRRRRRRRRRRRRKS!!!!!!!!!!!!!!!!';
</add>
</operation>
</file>

Then enable your plugin, and you should see 'it works' at the top of your homepage.
(The commit log says 'Home', not 'Home.php', but I think it's 'Home.php'... For now, at least. Or maybe both work...)

Re: The obligatory Christmas update.
« Reply #3, on December 10th, 2014, 08:23 PM »Last edited on December 10th, 2014, 09:44 PM
It works :cool:
https://github.com/C3realGuy/we_HideMod/commit/8670a371ba7b60cc87c1e1c606c5cd576cc2d605

Whats the proper way to do stuff with variables? Just passed it to a function and overwrote the variable with the return value. Dont know if its the right way to do it.

Thanks @Nao for that great work. Only one error appeared,
Code: [Select]
http://localhost:8080/wedge/?action=admin;area=plugins;sa=disable;plugin=hide;bc…
Filter einschalten: Nur die Fehler mit der selben Nachricht anzeigen 8: Undefined variable: flushed
Filter einschalten: Nur Fehler von dieser Datei anzeigen Datei: /usr/share/nginx/html/wedge/gz/app/ManagePlugins.php
Zeile: 1136

EDIT: What's about profile fields? They are set in Profile.template.php therefore theres no way to modify (cant find them in gz folder).

Re: The obligatory Christmas update.
« Reply #4, on December 10th, 2014, 10:31 PM »
Thanks for spotting that one. Fixed.
I'm not sure what you mean with variables..?

As for templates, yeah it's a current limitation. As I said, only (part of) core/app files and core/SSI.php can be edited; in exchange, Wedge does away with SMF's detestable way of upgrading versions. i.e. having to re-mod all files, SMF would never do that properly for me, so I always played it safe and re-modded the files manually every time. This is why I was okay with Pete getting rid of mods in Wedge, but is also the reason why I restored the feature after I realized that my app caching system allowed to do that easily. (And in less than 150 lines of code!)

Oh yeah, forgot to ask... Is it compatible with SMF's before/after positions? I only took a minute to implement these, and I may have inverted their roles. In fact, I never know which one is which... I've been thinking of renaming the XML tags to something less convoluted, like SMF's very first modding system file format, but then I realized that it would make it harder to convert mods, so...

Plus, don't forget you don't need the CDATA tags in your mods.xml file. You can use them to ease importing of old mods, but the only thing it'll do is slow down the parsing.

Re: The obligatory Christmas update.
« Reply #5, on December 10th, 2014, 10:42 PM »
Hey Nao , you need to do what you need to do, if that is take a break then have a good break and refresh yourself :)

One of the things I have learned recently is if you aren't having fun, then you feel kinds shit (hence the bike licence)!

At the end of the day though, it can't be a 1 man show, I am sure the community will help out.

Re: The obligatory Christmas update.
« Reply #6, on December 10th, 2014, 10:44 PM »Last edited on December 10th, 2014, 10:58 PM
Tested before, after and replace. Looks like all of them work like they should. Good to know that cdata stuff, had a quick look at some SMF mods today and noticed that tag.

To that template stuff, what do you think about storing for example profile fields for summary in an array which the template just itterates through? In my opinion hard coding all fields is not really nice.

Code: (Profile.template.php) [Select]
// What about if we allow email only via the forum?
if ($context['member']['show_email'] === 'no_through_forum' || $context['member']['show_email'] === 'yes_permission_override')
echo '
<li><a href="<URL>?action=emailuser;sa=email;uid=', $context['member']['id'], '" title="', $context['member']['show_email'] == 'yes_permission_override' ? $context['member']['email'] : '', '" rel="nofollow"><img src="', ASSETS, '/email_sm.gif" alt="', $txt['email'], '"></a></li>';

// Don't show an icon if they haven't specified a website.
if ($context['member']['website']['url'] !== '' && !isset($context['disabled_fields']['website']))
echo '
<li><a href="', $context['member']['website']['url'], '" title="', $context['member']['website']['title'], '" target="_blank" class="new_win"><img src="' . ASSETS . '/www_sm.gif" alt="', $context['member']['website']['title'], '"></a></li>';
         ........

With an "profile_summary_array" it would need less code and not so many if queries and it would be easier to modify it via mod/hook.

Re: The obligatory Christmas update.
« Reply #7, on December 14th, 2014, 03:58 PM »
:hmm:
Quote from Bunstonious on December 10th, 2014, 10:42 PM
Hey Nao , you need to do what you need to do, if that is take a break then have a good break and refresh yourself :)

One of the things I have learned recently is if you aren't having fun, then you feel kinds shit (hence the bike licence)!
"All work and no play make Jack a dull boy"...
Quote from Bunstonious on December 10th, 2014, 10:42 PM
At the end of the day though, it can't be a 1 man show, I am sure the community will help out.
I'm pessimistic about that.

For some time I thought Pandos would take over from Pete, but alas I doubt it'll be the case now, as he seems to have drifted to other occupations.

Re: The obligatory Christmas update.
« Reply #8, on December 15th, 2014, 09:03 AM »
I'm alive and not drifted away. :)

At this time some heavy changes IRL are taking place. But it's getting better and I will be back soon again.

Re: The obligatory Christmas update.
« Reply #9,  »
I just realized this was my last post on the blog... :^^;:
Oh, and that comment system looks so cool.

I'm guessing I need to make a strong statement about Wedge still being alive.
Thanks to CerealGuy for never giving up and pestering me into coming back :)
Also thanks to Lestrades.com for giving me a good reason to get back to work!

Re: The obligatory Christmas update.
« Reply #10,  »
Quote from Nao on March 19th, 12:40 PM
I just realized this was my last post on the blog... :^^;:
Oh, and that comment system looks so cool.

I'm guessing I need to make a strong statement about Wedge still being alive.
Thanks to CerealGuy for never giving up and pestering me into coming back :)
Also thanks to Lestrades.com for giving me a good reason to get back to work!
Wedge was the first bigger codebase I worked with and later contributed to. In that
time (and it still goes on) I learned a lot. Not only the benefits of open source and how
much fun it can be to work on project, but also It's the first time that code i wrote and ideas
I have, really get used in projects which aren't my own :lol:.
Thanks for making this possible.
 I hope we can obtain this friendly working condition in the future.
I wish you best luck and success with your LT project  :cool: