Content Type
Downloads
Release Notes
IPS4 Guides
IPS4 Developer Documentation
Invision Community Blog
Development Blog
Deprecation Tracker
Providers Directory
Forums
Events
Store
Gallery
Posts posted by The Old Man
-
-
I couldn't find anything in the docs, but I want to apply some different code in template logic for desktops, tablets and phones.
We can use media queries in CSS to make styling relevant for certain device screen widths and we have ipsResponsive_showPhone etc.
However, is there a utility available to do the same for HTML in IPS' template logic, perhaps a PHP expression or something?
Something like:
{{ is small-device/phone? }} this code {{elseif is medium-device/tablet? }} this code {{else}} use this for everything else {{endif}}
Many thanks!
-
Aha, thanks for that. It would be nice if it updated via Ajax or something. Thought I was going insane so I just watched my first video again, and I did save and reload at the very end but it didn't make the setting visible. Perhaps some kind of caching issue. Yes, I'll claim that!
-
Thanks, TBH I thought I reloaded it but must have missed that. I did expect it to show when toggled on (live). It is working now, thank you so much for confirming the right syntax. I wrote a plugin once, and I'm sure it worked live when toggling.
-
Okay, I tried re-entering theme dev mode and now it works when saving and reloading the page. Weird.
-
-
Thanks mate, yes that's exactly what I have but it doesn't work for me, even though it has too!
-
LOL Thanks! Didn't see your updated post.
Doesn't work for me though!
I can however now see all my custom theme settings though:
<?php print_r(array_values($this->settings)); exit;
-
LOL!
Think I need to get the value and not the key!
I'm close, I used array_values and custom theme settings are not in that array!
print_r(array_values(\IPS\Theme::i()->settings)); exit;
-
-
Thanks, I just took a screenshot while trying out different variations.
I did try your corrected syntax but for some reason, it didn't work.
Update: It returns NULL for other custom theme settings too. It works for a standard one like primary_button so I must have the syntax wrong for the variable. If it wasn't asking for raw PHP, I could just use theme.mysetting
-
Hi,
Do we know if this functionality is designed to work 'as is' in Custom Theme Settings?
Presumably, the setting is eval'd when the settings page loads or is updated via some AJAX or something so that it knows what to display.
It kind of seems back to front to me. Setting A should toggle Setting B on/off but the way it is set up says the code goes in Setting B (so it toggles itself on/off based on Setting A).
The text description below the Condition field suggests it should work, so it is probably a case of me not using the correct theme setting format, because although there is no error generated, all it seems to actually do is hide itself from view after saving. I can't see it working as the setting shows as NULL unless that's what it checks for. Maybe I should check for not null!
-
Thanks, I was sort of following the example of the recapcha image color in custom tab.
I tried dumping it and comes back as NULL
-
Thanks, Adriano! Still not working though. The toggle setting is still hidden.
-
Hmm, I'm wondering why this doesn't return true if this setting is enabled?
<?php return \IPS\Theme::i()->settings['my_theme_setting_enabled_or_not'] == TRUE;
It relates to a custom theme setting (a toggle) that is enabled and directly precedes this one that I'm entering the conditional logic into?
-
Thanks Stuart, just found the same in one of my old topics!
-
Hi,
According to this help guide and an existing setting in the AdminCP
<?php return \IPS\Settings::i()->bot_antispam_type === 'recaptcha2';
This would return true for use in a conditional theme setting so that a setting will be shown or not, but when I try this using my own custom theme setting:
<?php return \IPS\Theme::i()->my_theme_setting == true;
it gives me an error:
Error: Undefined constant "my_theme_setting" (0) #0 C:\laragon\htdocs\ips4-dev-theme3\system\Theme\Theme.php(1818): eval() #1 C:\laragon\htdocs\ips4-dev-theme3\system\Theme\Theme.php(1797): IPS\_Theme->getCustomSettingField(Array) #2 C:\laragon\htdocs\ips4-dev-theme3\system\Node\Controller.php(496): IPS\_Theme->form(Object(IPS\Helpers\Form)) #3 C:\laragon\htdocs\ips4-dev-theme3\system\Node\Controller.php(395): IPS\Node\_Controller->_addEditForm(Object(IPS\Theme)) #4 C:\laragon\htdocs\ips4-dev-theme3\system\Dispatcher\Controller.php(107): IPS\Node\_Controller->form() #5 C:\laragon\htdocs\ips4-dev-theme3\system\Node\Controller.php(69): IPS\Dispatcher\_Controller->execute() #6 C:\laragon\htdocs\ips4-dev-theme3\applications\core\modules\admin\customization\themes.php(59): IPS\Node\_Controller->execute() #7 C:\laragon\htdocs\ips4-dev-theme3\system\Dispatcher\Dispatcher.php(153): IPS\core\modules\admin\customization\_themes->execute() #8 C:\laragon\htdocs\ips4-dev-theme3\admin\index.php(13): IPS\_Dispatcher->run() #9 {main}
I've also tried:
<?php return theme.my_theme_setting == true;
This attempt produces no errors, but the theme setting doesn't show, it is hidden:
return $this->my_theme_setting == true;
and this one gives me undefined constant again!
return $this->theme.my_theme_setting == true;
Er, little help please?!
-
Hi IPS,
FYI there have been 6 updates to Howler.js since v2.1.2 (from April 2019) in IPS 4.7.14.
Current release is v2.2.4 (Sep 2023).
Please consider bringing it up to date. 🙂Also FYI:
Many thanks.
Graham
-
Sorry to hear of your ill health and leaving. Good luck for the future.
-
-
I have managed to complete the additional transactions, the stripe web hook log shows green ticks but this time nothing happened automatically on my site, so I marked them as paid.
It all seems a bit flakey. Discussing payment transactions on an open forum isn’t good when I’ve asked for direct contact.
-
-
I clicked on a resend icon at Stripe on the original transaction in the Webhook Event log that was authorised for payment and it went through. I’ll try the same approach for the other customers.
-
On the Stripe Dashboard, the web hook shows as status 200 but says Uneeded Type?
-
Thanks, I’ve not found anything yet.
Please can you create a ticket and help me permanently resolve this so that payments go through properly? I’ve got 3 items not going through.
Is their template logic to output HTML based on display size?
in Developer Connection
Posted
Thanks for the confirmation, I didn't want to reinvent the wheel and assumed there would be something built-in for IPS devs to reuse. I just want to insert some code in the head to preload an image based on device screen size. I'll have a look for some JS on MSDN.