Jump to content

G17 Media

Clients
  • Joined

  • Last visited

  1. 1) Create new CustomField extension 2) Go to CMS database fields 3) Go to add field, your custom type will be shown from the available field types dropdown 4) After adding your field, it will not show in the field list 5) Going manually to the edit field page with the field id edited in the URL will say: The custom field type YourFieldName does not exist, please select a valid field type.
  2. Hello, we have a really basic extension for our own, more advanced canned responses: var obj = { restrictions: [""], addButtons() { return { test1: { /*isAvailable: editor => editor.options.restrictions.has('ipsCustomExtension__g17editorcannedresponse__'), isActive: editor => editor.options.restrictions.has('ipsCustomExtension__g17editorcannedresponse__'),*/ html: '<span><i class="fa-solid fa-message"></i></span>', command: function (editor) { Debug.log(editor); var url = ips.getSetting('baseURL') + '?app=g17mediaaddons&module=cannedresponse&do=editor&editorId=' + editor.editor.options.name; var title = "Canned Response"; this.storage.dialog = ips.ui.dialog.create({ title: title, fixed: false, url: url, forceReload: true, remoteSubmit: false, remoteVerify: false }); this.storage.dialog.show(); }, // This puts the button before bold, after the 'link' button, inside the `...` menu and at the end of the toolbar locations: [null], } } }, }; ips.ui.editorv5.registerExtension('g17editorcannedresponse', obj);This works absolutely fine, adds the button, and opens the dialog mentioned when clicked. There's later logic for the dialog to then insert content into the editor externally, but that's beyond the scope here. However, if a second instance of the editor is booted on the page (like hitting Edit on a multi-post topic after playing with the editor at the bottom of the page), you cannot edit the text, the editor will briefly show, then disappear with the following JS error: main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 TypeError: Cannot destructure property 'command' of 'r.options.ipsPlugins.buttons[e]' as it is undefined. at J6 (main-R_MZN_ry.js?v=6701dc1d9f1739874311:200:87924) at zT (main-R_MZN_ry.js?v=6701dc1d9f1739874311:38:17029) at eD (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:44058) at Xw (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:39790) at nH (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:39718) at $_ (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:39570) at pS (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:35934) at Kw (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:34883) at I (main-R_MZN_ry.js?v=6701dc1d9f1739874311:25:1569) at MessagePort.de (main-R_MZN_ry.js?v=6701dc1d9f1739874311:25:1938) eS @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 n.callback @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 UN @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:38 JN @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 qw @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 JY @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 iH @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 As @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 Kw @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:40 I @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:25 de @ main-R_MZN_ry.js?v=6701dc1d9f1739874311:25 main-R_MZN_ry.js?v=6701dc1d9f1739874311:200 Uncaught TypeError: Cannot destructure property 'command' of 'r.options.ipsPlugins.buttons[e]' as it is undefined. at J6 (main-R_MZN_ry.js?v=6701dc1d9f1739874311:200:87924) at zT (main-R_MZN_ry.js?v=6701dc1d9f1739874311:38:17029) at eD (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:44058) at Xw (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:39790) at nH (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:39718) at $_ (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:39570) at pS (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:35934) at Kw (main-R_MZN_ry.js?v=6701dc1d9f1739874311:40:34883) at I (main-R_MZN_ry.js?v=6701dc1d9f1739874311:25:1569) at MessagePort.de (main-R_MZN_ry.js?v=6701dc1d9f1739874311:25:1938) I thought of reporting this one as it should be easy to reproduce (it doesn't require any of the other parts working to reproduce). I'm not sure if it affects all third-party extensions or whether this is a fault of me using the not currently hugely documented editor extension system.
  3. It’s available as a development setting for an application. Developer Center > (your application) > Front-End > Parser Settings.
  4. In an ideal world, all ad companies would provide you with tags that plug in nicely with IPS’ advertisement system. We have definitely had ad companies which have requested some on-page way of telling the difference between a logged in user or not for more dynamic ads and varying type of ads. I’ve found some of them do struggle on the concept of ‘just give me code for this case’ as they want to fully manage the page without giving us individual units.
  5. Well it depends on how they want to do it. If they’re fine with JavaScript, a call to ips.getSetting('memberID')will return non zero if a user is logged in. Otherwise, you could use template logic to insert a psuedo hidden div.
  6. Am I right in thinking that editor restrictions right now are mostly client side? I've looked through the code and most of the restrictions seem client-sided, but there's obviously things I could be missing. If this is the case, is there any plans to verify these restrictions on the server side?
  7. iirc; we had to build custom functionality for this; the caches will not be automatically rebuilt, but are necessary.
  8. I had a similar issue on a beta/unstable Chromium build, the fix was, of course, using a stable Chrome version.
  9. IPS won't do this because their cloud system doesn't work like this. However, we actually locally maintain our own Docker "master image" which has all of our custom apps and tweaks to IPS - as well as custom written ability to automatically upgrade (e.g. automatic database and IPS formatted application upgrades) as well as automatically install for testing branches etc. It doesn't actually require any changes to IPS' core code (at least for v4 😆), so you can definitely hire a developer or work on doing the same in-house if you want a serviceable Docker image. IPS give us the software, it's up to us how we chose to install/deploy/configure it.
  10. There are definitely customizations that were possible before that won't be possible in IPS 5 for third parties. Whilst I'm sure IPS will make their event listener and extension system quite extensive, there are definitely cases where it will not cover. Compare that to being able to edit any class and any template dynamically via hooking, the level of power for third party developers is definitely not as strong. However, I'm looking forward to seeing the capabilities of the new system.
  11. Using pagination on the leaderboard 'Past Leaders' tab doesn't work. You can reproduce on this community: https://invisioncommunity.com/pastleaders/ Try going to next page, or pick a page.
  12. We're trying to plan whether to continue to use IPS or migrate to our own platform, so would love to have a look to evaluate.
  13. The alpha testing group probably mostly consists of those who are at least experts or well-versed in using web technology and quick learners. @13.'s suggestion is probably more aligned with how I see normal users using it.
  14. Google doesn't need to render the code. 2FA/TOTP QR code generation does not require data being sent to Google. There is not a need for IPS to be sending these codes to Google for rendering, it could be done locally. Google Authenticator is one app for 2FA/TOTP codes, but you can use other apps. Even Google Authenticator itself does not transmit/backup TOTP codes to Google unless you activate its optional backup function.
  15. Is 2FA data really being sent to Google for rendering? 😕