Jump to content



  • Posts

  • Joined

  • Last visited

  • Days Won


Colonel_mortis last won the day on November 28 2020

Colonel_mortis had the most liked content!


About Colonel_mortis

IPS Marketplace

  • Resources Contributor
    Total file submissions: 4

Profile Information

  • Gender
  • Location
  • Interests
    Breaking things
    Making the devs pull their hair out

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I've not really played around with achievements yet, but I think that's all the more reason to give this feedback now. My initial impression as a user on this site is that it's not obvious: What points are How I get points, and how many points things are worth How many points I have How the ranks compare (beyond just that each one is higher than the previous) (ie how many points each rank is worth) What I can do to unlock new badges (there's an argument that some badges should be secret, but certainly most should not) These are the sorts of things that experienced members will figure out within a couple of weeks, and maybe all that information is available for users somewhere that I'm not immediately seeing. However, the fact that I'm not immediately seeing it is the problem. For achievements to really work they need to be walk-up usable - a new member needs to be incentivized to ask questions, to post good answers, and to come back to the site next week, and right now, it doesn't do that. On the user menu, it highlights my rank and progress, which is great, but I want to click it and see more details. It feels weirdly non-interactive, and leaves me wanting more info. For a good case study, take a look at Stack Overflow. I can look at all the badges, and see my progress towards them. I also see a graph of my rep (which on SO is less valuable because rep is compounding as people find your old questions, but on forums would be a more active incentive to keep increasing it). Building on the SO example, wouldn't it be neat if achievement ranks could be configured to actually benefit you? Even the group promotion rules are conspicuously missing the ability to promote by rank. I want to set some rules like "level 1 can only use forums, level 2 can use blogs and status updates, level 3 can post news, level 4 can use classifieds, level 5 gets more messenger storage, etc", which I think would be a great way to incentivise engagement and give users a goal to work towards that is more than just a slightly different coloured icon on their profile picture. Also, and this is borderline a bug, the default badge descriptions are inconsistent - some don't have descriptions, some have passive descriptions ("a week since joining"), some have present tense descriptions ("making your first post"), and some have past tense descriptions ("visited daily for a week"). There's also no way to edit them (which I will report as a bug). Another thing - wouldn't it be nice if getting a badge could give you points? As far as I can see, that's not a thing at the moment.
  2. When topics are merged, the view (manage) requests are redirected, but not any other controller methods, including not embeds. The redirects are really useful, but given that most links are actually in the form of embeds there's a significant gap there. There's also a lot of room for improvement on stopping people from destructively merging the wrong way on big topics (followers don't get ported across, and are irrecoverably deleted, maybe some other things too). The first post in the topic will always be the oldest, regardless of which was kept, and in almost every case I can think of, that means I would want to keep that post's title and therefore URL as well.
  3. Version 1.3.3


    Limits signatures to 70px (3 lines), with an expand button to show the full signature. There is no free support available for this plugin. Please see Additional Information for details.
  4. I had a few complaints about it from my members too, and I ended up fixing it by changing the logic for sending a new notification to not send it if it's from an IP that they have used previously (except moderators and admins, which I retain the old behaviour). Since making that change, I haven't had any complaints from members. if ( \IPS\Settings::i()->new_device_email && ($member->isAdmin() || $member->modPermission() || \IPS\Db::i()->select('count(*)', 'core_members_known_ip_addresses', ['member_id=? AND ip_address=?', $member->member_id, \IPS\Request::i()->ipAddress()] )->first() === 0) )
  5. @Colonel_mortis - feel free to step in if I am getting the wrong end of the stick here. Exactly But quotes that are replies to other members get discarded. The first thing that comes to mind is changing the overall look of quotes like the one above, essentially offering two types of quotes: A reply to someone An actual quote Maybe the #2. looks like: Am I finally understanding it lolol? Yeah, some sort of styling difference between the quote types might make sense. I think I'd want something that stands out slightly more than that, such as by adding a left border, such as stack overflow:
  6. Nice suggestion, @Colonel_mortis Do you have any visual examples handy by chance? Something like this? I was just thinking they should look something like this ^ (but only with manually added quotes, not "real" quotes as in this example). Having pull quotes like in your example is also an interesting idea, and one that I could maybe see some sites using, although my use case is people quoting news articles, for which I don't think that would be super useful.
  7. If I have a manually added quote (ie a quote added using the quote button rather than by quoting another post), it is often a relevant part of the actual post (especially when it's in the first post in a topic), so it would make sense for those quotes to remain as nested quotes when that post is quoted (especially now long quotes are truncated). It wouldn't be too hard to achieve - just look for the attribution attributes on the quote before stripping it.
  8. Another one I've just run into - \IPS\Content\Comment::contentImages calls $item->container() indiscriminately, which results in a bad method call exception. This can be triggered when viewing an activity stream RSS feed.
  9. When an ips.ui.editor instance is destroyed, you are following the answer from a Stack Overflow question and trying to manually destroy the CKE instance. Unfortunately, that manual destruction is not sufficient, and is leaving references to the editor and behaviour. Take ipsautosave as an example (and maybe the only example, I've not looked further) - it maintains a reference to `editor`, and runs autosave on it every two seconds. It attaches a `destroy` event handler, which would be triggered when calling editor.destroy(), to cancel the timeout and therefore release the editor reference, but because you never trigger the destroy event it's not sufficient. (I'm noticing this because I am trying to use multiple editors on a page with the same autosave key, but it's still a problem without that.) It looks like there are a few other references that destroy manually cleans up, so there are presumably a few other things that are leaked too. At a minimum, you should be doing `editor.fire("destroy")` to trigger all of that cleanup code, but ideally you should find the things that prevent editor.destroy() from working and fix those in CKE. As a middle ground, maybe you could do `try { editor.destroy(); } catch (e) { /* existing manual best effort */ }`.
  10. Ugh it's the patch from ticket #70349 again. Looking at the patch again it doesn't seem to break either of the things that I've run into, so it seems I somehow managed to misapply it (my linux git doesn't like that patch file at all, it's missing the a/ and b/ prefixes). Apologies for wasting your time twice for that.
  11. If you've not discovered it yet, I'm also getting TypeError: array_merge(): Argument #2 must be of type array, null given (0) in \IPS\forums\Forum::formatFormValues:1120 (neither $whereString nor $whereParams are defined as far as I and my IDE can tell, and $where seems to be unused). Also there are a few places where you have new\DateInterval( which seems to now be lexed as calling the function DateInterval in the namespace new, rather than applying the new operator to the root-namespace class DateInterval [1].
  12. How about doing patch releases on a regular schedule, such as on the first Tuesday of each month? That way, people can predict and plan for the work that will be needed (which for patch releases, with no new features or breaking changes, should be pretty minimal), and we get a reasonable cadence of bug fixes. Features should be released in minor releases (4.6 etc). Personally, I would be happy to see more frequent but smaller feature releases, say every 6 months with a couple of changes each time, as long as the scope of a release is fairly clear (ie. there are no breaks in a patch release like 4.5.5) and it doesn't affect the cadence of bug fixes (so we're not waiting 1.5mo and counting for bug fixes).
  13. I've only been playing around with it IN_DEV so far, but I'm not noticing a difference. I don't think the JIT compiler is expected to make too much difference for web apps, but I would love to be wrong there.
  14. PHP 8.0.0 has been released. Some bugs that I've found in a couple of minutes of testing: There are a bunch of deprecation warnings for required parameters following optional parameters - from my search with the regex function\s*\w+\s*\([^=)]*=[^)]*,\s*\$[^,)=]*[,)] there are 47 instances of this in the suite. It should be safe to remove all of the offending default parameters, since they can never be utilised. The cms lang key can_edit_item_message_record is invalid - it contains %S rather than %s, which causes the page to (randomly?) 500. Fatal error: Cannot make static method XMLReader::open() non static in class IPS\Xml\_XMLReader in .../system/Xml/XMLReader.php on line 34 (this might be a fun one to fix - it's a PHP 8 change that isn't compatible in either direction - https://www.php.net/manual/en/xmlreader.open.php#refsect1-xmlreader.open-changelog - you probably have to make a new method that delegates instead) TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given from statusContainer.phtml:133 (when viewing a feed containing status updates) PHP Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in .../applications/calendar/widgets/upcomingEvents.php on line 153 If I come across any more issues, I'll add them in this topic, and encourage others to do the same.
  • Create New...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy