This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
2746
Features / Re: New revs - Public comments
« on September 26th, 2012, 04:10 AM »
OK, so after yet more digging, I find interesting things.
Recurring payments seems to be broken in SMF too.
There's still broken behaviour, but it's only partly Wedge's fault these days :P Basically, Wedge is broken right now because it always sets up the PayPal cmd as _xclick-subscriptions even when it isn't a recurring payment, so right now it will always fail. It needs to be _xclick for non-recurring and _xclick-subscriptions for recurring.
But... I just tried it on the only site I have live where I can mess about with such things, which is SMF RC3 site, and *that* fails if cmd is set to _xclick-subscriptions as well, so it's not a new issue.
I'll fix the issues I can fix my side (the template being the main one) but a more thorough debugging of PayPal is going to have to wait for another day.
Recurring payments seems to be broken in SMF too.
There's still broken behaviour, but it's only partly Wedge's fault these days :P Basically, Wedge is broken right now because it always sets up the PayPal cmd as _xclick-subscriptions even when it isn't a recurring payment, so right now it will always fail. It needs to be _xclick for non-recurring and _xclick-subscriptions for recurring.
But... I just tried it on the only site I have live where I can mess about with such things, which is SMF RC3 site, and *that* fails if cmd is set to _xclick-subscriptions as well, so it's not a new issue.
I'll fix the issues I can fix my side (the template being the main one) but a more thorough debugging of PayPal is going to have to wait for another day.
2747
Features / Re: New revs - Public comments
« on September 26th, 2012, 03:32 AM »
Yeah, I knew about that, but I wasn't sure if I could actually pay myself even in the sandbox. Since there's no harm in trying... I might as well try it!
It will also let me try out a few other things that need to be experimented with, namely looking into the bug that apparently exists with failed subscription transactions that happen for no apparent reason.
Also, the installation is currently completed broken. Moving that if() test around in Settings.php breaks the installer, because the installer now repeatedly and consistently removes the if() and the opening { of that test.
I'll fix it sometime, but I'm deep into other stuff first.
And on a fresh install, it always seems to me that jQuery can't be loaded from Google. This has never once worked for me on any test install I've ever made, including localhost.
Also, I have no idea how the sandbox works, especially since it doesn't seem to handle subscription payments. It seems to be geared for much larger and more complex stuff that we're trying to do.
After struggling along with the banality of the Sandbox, it's broken. It just tells me the address for entering PayPal was wrong, but it also flags the code before my change as wrong, which suggests sandbox mode is actually broken anyway.
It will also let me try out a few other things that need to be experimented with, namely looking into the bug that apparently exists with failed subscription transactions that happen for no apparent reason.
Posted: September 26th, 2012, 02:27 AM
Also, the installation is currently completed broken. Moving that if() test around in Settings.php breaks the installer, because the installer now repeatedly and consistently removes the if() and the opening { of that test.
I'll fix it sometime, but I'm deep into other stuff first.
Posted: September 26th, 2012, 02:50 AM
And on a fresh install, it always seems to me that jQuery can't be loaded from Google. This has never once worked for me on any test install I've ever made, including localhost.
Posted: September 26th, 2012, 02:54 AM
Also, I have no idea how the sandbox works, especially since it doesn't seem to handle subscription payments. It seems to be geared for much larger and more complex stuff that we're trying to do.
Posted: September 26th, 2012, 03:03 AM
After struggling along with the banality of the Sandbox, it's broken. It just tells me the address for entering PayPal was wrong, but it also flags the code before my change as wrong, which suggests sandbox mode is actually broken anyway.
2748
Features / Re: New revs
« on September 26th, 2012, 01:46 AM »
(1 file, 2KB)
Revision: 1717
Author: arantor
Date: 26 September 2012 00:44:35
Message:
! SMF bug: PayPal paid-subs module has HTTP/1.0 connection details if using fsockopen to handle the connection, but after Feb 1, 2013, PayPal will not accept them. I've taken the liberty of rewriting it using the WebGet class, too. However, I HAVE NOT TESTED IT. I see no reason why it shouldn't work, but treat it with the care it deserves. (Subscriptions-PayPal.php)
----
Modified : /trunk/Sources/Subscriptions-PayPal.php
@ The main reason I haven't tested it is because while I have an account that is PayPal capable, I can't pay for a subscription myself with my own account and I refuse to expect others to pay to test it on a site of mine, if that makes sense.
Revision: 1717
Author: arantor
Date: 26 September 2012 00:44:35
Message:
! SMF bug: PayPal paid-subs module has HTTP/1.0 connection details if using fsockopen to handle the connection, but after Feb 1, 2013, PayPal will not accept them. I've taken the liberty of rewriting it using the WebGet class, too. However, I HAVE NOT TESTED IT. I see no reason why it shouldn't work, but treat it with the care it deserves. (Subscriptions-PayPal.php)
----
Modified : /trunk/Sources/Subscriptions-PayPal.php
@ The main reason I haven't tested it is because while I have an account that is PayPal capable, I can't pay for a subscription myself with my own account and I refuse to expect others to pay to test it on a site of mine, if that makes sense.
2749
The Pub / Re: Language editing inside Wedge
« on September 25th, 2012, 10:57 PM »
It sort of IS up to me :P I sort of need to go through all of it mentally, so let's recap the whole thing end to end.
Ideally, I don't want anything in the DB that doesn't need to be there. The DB at a minimum needs to be able to contain what is different from the physical files, which means the DB needs to store enough to be able to work that out - which means, I guess: theme id, language file root, language of string, changed string. (Perhaps an additional column to indicate it is an array and should be unserialized on reading)
Then it's queried as necessary from loadLanguage.
From a cache perspective, we will likely need to recache language files, and to that end, I'm thinking we'll end up playing cache using the theme id, plus the language root, plus language - essentially caching something like '1-index-english' as the resultant content of that language file.
To me it seems that JS caching only needs to call on that combination (theme + language root + language) to find the file and then you have far fewer combinations. Clearing the cache when editing strings means the language cache, then the JS cache will be rebuilt. There should be no circumstance where files are edited manually and if users do do something stupid like that, it's going to be their own fault that it doesn't work properly. You don't have to worry about users that don't follow instructions - because they won't actively break anything by editing strings, it just won't propagate their changes.
That's for the worst case scenario of having multiple themes where the theme will also have to provide language strings itself, and we have to be able to make a distinction between two themes for the purposes of language files. It means you get a set of JS files per language per theme.
I'm just not seeing the need to store any cache values, unless there's something I'm missing...
Ideally, I don't want anything in the DB that doesn't need to be there. The DB at a minimum needs to be able to contain what is different from the physical files, which means the DB needs to store enough to be able to work that out - which means, I guess: theme id, language file root, language of string, changed string. (Perhaps an additional column to indicate it is an array and should be unserialized on reading)
Then it's queried as necessary from loadLanguage.
From a cache perspective, we will likely need to recache language files, and to that end, I'm thinking we'll end up playing cache using the theme id, plus the language root, plus language - essentially caching something like '1-index-english' as the resultant content of that language file.
To me it seems that JS caching only needs to call on that combination (theme + language root + language) to find the file and then you have far fewer combinations. Clearing the cache when editing strings means the language cache, then the JS cache will be rebuilt. There should be no circumstance where files are edited manually and if users do do something stupid like that, it's going to be their own fault that it doesn't work properly. You don't have to worry about users that don't follow instructions - because they won't actively break anything by editing strings, it just won't propagate their changes.
That's for the worst case scenario of having multiple themes where the theme will also have to provide language strings itself, and we have to be able to make a distinction between two themes for the purposes of language files. It means you get a set of JS files per language per theme.
I'm just not seeing the need to store any cache values, unless there's something I'm missing...
2750
The Pub / Re: Language editing inside Wedge
« on September 25th, 2012, 06:09 PM »Well, it goes through loadLanguage all the same, doesn't it..?
I don't know what base_theme is, but what I know is that I've never delved into alternate themes
base_theme strikes me as something not really needed any more, and I have no objections to removing it.
However, the question of multiple physical themes is a difficult one, do we actually need to leave this in (and check it works)? It depends, really, on how flexible CSS can be and whether or not additional layout markup would be needed - if new markup is required, you're in either plugin or theme territory.
2751
The Pub / Re: Language editing inside Wedge
« on September 25th, 2012, 02:24 PM »
Well, there's one very large problem to contend with: what happens if a theme (not a skin) decides to have its own language files?
There are all sorts of funky things tangled in the bowels of the code, such as the fact that themes can also have other themes as a dependent (so you can create one theme with a bunch of new code, and then create several full themes that depend on *that* theme)
I can fully see cases where people might push out their own actual theme, with their own templates and their own strings. For example, most of DzinerStudio's themes have a different board index layout to the standard, which also requires additional strings. Which can also be edited and will require caching.
Though I'm tempted to remove base_theme support, I don't believe anyone except Bloc ever used it and even then I'm not entirely sure about that. But I don't see that we can remove actual support for alternate themes in general.
But that makes caching potentially complicated, especially if people can choose between different themes as such, because even the JS caches might be different - if a theme declares its own index.english.php (which it is perfectly entitled to do) or replace any strings from index within its own ThemeStrings language file, that will need to be factored in, which means potentially you need to include the theme id in the cached filename.
There are all sorts of funky things tangled in the bowels of the code, such as the fact that themes can also have other themes as a dependent (so you can create one theme with a bunch of new code, and then create several full themes that depend on *that* theme)
I can fully see cases where people might push out their own actual theme, with their own templates and their own strings. For example, most of DzinerStudio's themes have a different board index layout to the standard, which also requires additional strings. Which can also be edited and will require caching.
Though I'm tempted to remove base_theme support, I don't believe anyone except Bloc ever used it and even then I'm not entirely sure about that. But I don't see that we can remove actual support for alternate themes in general.
But that makes caching potentially complicated, especially if people can choose between different themes as such, because even the JS caches might be different - if a theme declares its own index.english.php (which it is perfectly entitled to do) or replace any strings from index within its own ThemeStrings language file, that will need to be factored in, which means potentially you need to include the theme id in the cached filename.
2752
Archived fixes / Re: SMF bug 4913 (convert fopen/fwrite to file_put_contents)
« on September 25th, 2012, 02:03 AM »
Quick moderation and, really, the permissions in general haven't been tested out thoroughly, oops. But I'm pretty happy with it (I will, at some point also add a log of unsolved topics in the selected boards, but not today)
2753
Archived fixes / Re: SMF bug 4913 (convert fopen/fwrite to file_put_contents)
« on September 25th, 2012, 01:06 AM »
No, the indicator is deliberately designed to be shown regardless - to let people know it's solved even if they can't mark it solved themselves.
(It's in the plugins repo... :whistle:)
(It's in the plugins repo... :whistle:)
2754
Archived fixes / Re: SMF bug 4913 (convert fopen/fwrite to file_put_contents)
« on September 24th, 2012, 01:22 PM »
I've done a few more, most of the remaining fwrites are socket related, there's a few interesting uses I can't be bothered at this stage to fix, though.
2755
Archived fixes / Re: Disabled profile fields still visible in personal messages
« on September 24th, 2012, 01:21 PM »
Committed in r1712.
2756
Features / Re: New revs
« on September 24th, 2012, 01:21 PM »
(5 files, 3KB, just a quick one before other stuff happens that I need to go and do.)
Revision: 1712
Author: arantor
Date: 24 September 2012 12:20:43
Message:
! boardsAllowedTo wasn't returning arrays of things as expected. (Security.php)
! Disabled profile fields still visible in personal messages (thanks Emanuele) (PersonalMessage.php)
! Conversion of a few fopen/fwrite/fclose to file_put_contents. Smaller code, more readable, and doesn't necessarily have some of the nasty problems fwrite can have. (Class-GifAnimator.php, ManageRegistration.php, ManageServer.php)
----
Modified : /trunk/Sources/Class-GifAnimator.php
Modified : /trunk/Sources/ManageRegistration.php
Modified : /trunk/Sources/ManageServer.php
Modified : /trunk/Sources/PersonalMessage.php
Modified : /trunk/Sources/Security.php
Revision: 1712
Author: arantor
Date: 24 September 2012 12:20:43
Message:
! boardsAllowedTo wasn't returning arrays of things as expected. (Security.php)
! Disabled profile fields still visible in personal messages (thanks Emanuele) (PersonalMessage.php)
! Conversion of a few fopen/fwrite/fclose to file_put_contents. Smaller code, more readable, and doesn't necessarily have some of the nasty problems fwrite can have. (Class-GifAnimator.php, ManageRegistration.php, ManageServer.php)
----
Modified : /trunk/Sources/Class-GifAnimator.php
Modified : /trunk/Sources/ManageRegistration.php
Modified : /trunk/Sources/ManageServer.php
Modified : /trunk/Sources/PersonalMessage.php
Modified : /trunk/Sources/Security.php
2757
Features / Re: New revs - Public comments
« on September 24th, 2012, 12:47 PM »
It's been grand getting back into the swing of things :)
2758
The Pub / Re: Language editing inside Wedge
« on September 24th, 2012, 12:38 PM »I don't see it that way...?
If we see a plugin language file as updated, we empty the JS cache folder... (clean_cache('js'), once again.)
1) We update a plugin's own language files. We don't know if any given plugin has any JS files that are modified by those language files. But it would be conceivable that if we have a specific plugin being targeted, that we could brute-force search it for .js files and check those for @language directives. That said, it would theoretically be possible for a plugin to load another plugin's language files and use another plugin's JS, so that's not a reliable method.
2) We update a core language file which is used by multiple plugins of indeterminate use. Like above, short of checking every plugin, we can't really do a lot. Which means, we're either looking into caching the last update by language file as you suggested, or we clear the JS cache.
The problem with clearing the JS cache is that of course it means the next page load is going to hurt for someone. Would it not be better to purge the cache but *immediately* rebuild the files you know you're going to need for definite? The idea is that you'll hopefully move the performance hurt of regenerating cache files away from end users to the admin who is in the ACP and therefore should be expecting the occasional delay.
But we can definitely worry about that after the fact. I've got some stuff to do today so won't be able to look at this until tonight if I'm lucky.
Oh, slightly unrelated: I've decided to stop including common.css in all files.
I don't think it's that necessary.
2759
Features / Re: New revs - Public comments
« on September 24th, 2012, 12:12 PM »
Oh, I already did that. But there's a technical reason it's been done that way in the past - the point of pseudo buttons isn't really about new windows, but the fact that there's already a submit button inside the form that's involved, typically a delete button. Often that submit button belongs to a form that does processing, but where the link would go is a separate piece of code, which means far larger changes than just the HTML.
2760
Features / Re: New revs
« on September 24th, 2012, 03:56 AM »
(20 files, 2KB, simply removing lines is quite lean in SVN)
Revision: 1708
Author: arantor
Date: 24 September 2012 02:55:55
Message:
! Clean-up of duplicate strings in general. More to do, though. (ManageAttachments.php, ManageSmileys.php, Modlog.php, ManageBoards.template.php, ManagePaid.template.php, Packages.template.php, language files: Admin, ManageBoards, ManagePaid, ManageSmileys, Modlog, Packages, Profile)
----
Modified : /trunk/Sources/ManageAttachments.php
Modified : /trunk/Sources/ManageSmileys.php
Modified : /trunk/Sources/Modlog.php
Modified : /trunk/Themes/default/ManageBoards.template.php
Modified : /trunk/Themes/default/ManagePaid.template.php
Modified : /trunk/Themes/default/Packages.template.php
Modified : /trunk/Themes/default/languages/Admin.english.php
Modified : /trunk/Themes/default/languages/Admin.french.php
Modified : /trunk/Themes/default/languages/ManageBoards.english.php
Modified : /trunk/Themes/default/languages/ManageBoards.french.php
Modified : /trunk/Themes/default/languages/ManagePaid.english.php
Modified : /trunk/Themes/default/languages/ManagePaid.french.php
Modified : /trunk/Themes/default/languages/ManageSmileys.english.php
Modified : /trunk/Themes/default/languages/ManageSmileys.french.php
Modified : /trunk/Themes/default/languages/Modlog.english.php
Modified : /trunk/Themes/default/languages/Modlog.french.php
Modified : /trunk/Themes/default/languages/Packages.english.php
Modified : /trunk/Themes/default/languages/Packages.french.php
Modified : /trunk/Themes/default/languages/Profile.english.php
Modified : /trunk/Themes/default/languages/Profile.french.php
Revision: 1708
Author: arantor
Date: 24 September 2012 02:55:55
Message:
! Clean-up of duplicate strings in general. More to do, though. (ManageAttachments.php, ManageSmileys.php, Modlog.php, ManageBoards.template.php, ManagePaid.template.php, Packages.template.php, language files: Admin, ManageBoards, ManagePaid, ManageSmileys, Modlog, Packages, Profile)
----
Modified : /trunk/Sources/ManageAttachments.php
Modified : /trunk/Sources/ManageSmileys.php
Modified : /trunk/Sources/Modlog.php
Modified : /trunk/Themes/default/ManageBoards.template.php
Modified : /trunk/Themes/default/ManagePaid.template.php
Modified : /trunk/Themes/default/Packages.template.php
Modified : /trunk/Themes/default/languages/Admin.english.php
Modified : /trunk/Themes/default/languages/Admin.french.php
Modified : /trunk/Themes/default/languages/ManageBoards.english.php
Modified : /trunk/Themes/default/languages/ManageBoards.french.php
Modified : /trunk/Themes/default/languages/ManagePaid.english.php
Modified : /trunk/Themes/default/languages/ManagePaid.french.php
Modified : /trunk/Themes/default/languages/ManageSmileys.english.php
Modified : /trunk/Themes/default/languages/ManageSmileys.french.php
Modified : /trunk/Themes/default/languages/Modlog.english.php
Modified : /trunk/Themes/default/languages/Modlog.french.php
Modified : /trunk/Themes/default/languages/Packages.english.php
Modified : /trunk/Themes/default/languages/Packages.french.php
Modified : /trunk/Themes/default/languages/Profile.english.php
Modified : /trunk/Themes/default/languages/Profile.french.php