Jump to content

Macrura

PW-Moderators
  • Posts

    2,771
  • Joined

  • Last visited

  • Days Won

    40

Everything posted by Macrura

  1. In one sense that could be an interpretation, but another interpretation is that it can be used on the front end, and i know of some other devs that do use it on live sites so i think it's still risky to autoload scripts or styles on a module without just loading the assets where you need them.. I don't currently know any modules where the $config->styles/scripts load on the front end inadvertently, but i'll keep a lookout. I have a module that loads into those for the purposes of use on the front end (Soundmanager). The idea is to create an ecosystem where markup generating modules can have a way to load dependencies on the front end - in Soundmanager2, you need to load the various files based on your settings. By checking to see if there is anything in $config-styles/scripts, i can have modules that can load dependencies using the core $config class. Maybe there is a better way, but $config is a useful class and i'm using it all over the place for front end development..
  2. @kixe So the issue here is that the module has a JS file named the same as the module - this is a problem because this module is autoload, and as such the module's JS file is polluting the front end output for any of us who use $config->scripts, meaning that our scripts for use on the front end inadvertently includes the module's js file, which is not only unnecessary, but also is breaking my frontend api. a much better way of loading the JS file is to rename it and then just load the JS on the module's setting page, you can do that by checking the input and loading your js. For now i just disabled the js file, i don't even know if it is needed, or being used, and this has fixed the problem.
  3. @Sevarf2 - just updated the code to ensure that both the settings array and the key within the array exist. (This would prevent inadvertently adding a settings array or setting if the key is typed incorrectly), if they don't it will ignore the changeSetting() call.
  4. thanks @Robin S that makes sense, i'll implement your code. *Note: module updated.
  5. i don't think that works - PHP_EOL should be the standard for cross platform, and it is also in the core, so i think if anyone is seeing issues with line breaks would also see them where the core uses PHP_EOL..
  6. @Sevarf2 If you want to test this, you can add the following code to the module at the end of "SettingsFactory.module". /** * @var $key - the settings key * @var $_key - the setting within the key * @var $value - the new value */ public function changeSetting($key,$_key,$value) { $modData = $this->modules->getConfig('SettingsFactory'); if(!array_key_exists($key, $modData)) return; if(!array_key_exists($_key, $modData[$key])) return; $modData[$key][$_key] = $value; $this->modules->saveModuleConfigData('SettingsFactory', $modData); } and then this would be the way to change the setting from api: $factory->changeSetting('wiretabs-testing1','settings_client','new value'); in limited testing this has worked fine, but i'd recommend a few more tests before using on production. I haven't commited this to the master yet - it probably needs to include a check to ensure the target key exists in this case. This also illustrates that it would be possible to add settings (addSetting), but since the fieldset is defined in a hard file, any settings added in the api would not be editable in the admin, so not sure if that would be useful.
  7. you could try replacing line 263, which is this: $itemsList = explode(PHP_EOL,$that->itemsList); with this: $itemsList = preg_split('/\n|\r\n?/', $that->itemsList); let me know if that fixes it; if so then i can test on non-windows and then make the change to the module...
  8. ok thanks - i think it can be done no problem, but i think the api should be cleaner where you don't need to deal with setting array values; i'll have to post back once i have a working prototype.
  9. @Sevarf2 - I was able to successfully do that by adding a custom setConfigDataCustom method to the module, but this would be a beta feature until it is tested further. I'm not totally sure if i'm doing it the best/right way, so this was just a quick test, but it did work. However the api is not so intuitive for this currently as you first need to get the settings array for the key, then alter the value of one of the items, or add a new item (not tested) and then write the whole array back to the module $factory = $modules->get("SettingsFactory"); $mySettings = $factory->getSettings('wiretabs-testing1',false); // return array not wiredata $mySettings['settings_client'] = 'Jimmy James 4th'; $factory->setConfigDataCustom('wiretabs-testing1',$mySettings); I think it might also be possible to write settings to the module that don't have process pages, using this, but not sure how useful that is, i assume that it will be possible since the settings are just module config, so you'd be able to store anything you'd want in those arrays... If you can elaborate on the use case for this that might help to determine the best way to implement it.
  10. @pwfans - what OS are you on, the module uses PHP_EOL to determine line endings, so the only thing i can think of is that somehow the line endings are not being picked up?
  11. Sorry if this has already been asked, there is a "View site" menu item, say when using AdminThemeUiKit, and i want that to open in a new tab, however checking off the "Open Home/View site in new tab (topnav)" seems to have no effect.
  12. I have been able to track down the issue, the cause of the crash was my own module – TextInputAwesomeplete which was not compatible with the new custom fields on images feature. I have pushed a fix, but i wonder about the core, in terms of it being able to be resilient against a pagefinder query that incorporates one of the 'virtual' fields. https://github.com/processwire/processwire-issues/issues/1104
  13. thanks - no, the template itself is named correctly, field-images; else the system wouldn't pick it up as a files field definition template... The output field naming (what is being generated in the edit form) is handled by the system..
  14. No search, no selector; No - the system makes up field names like that which comprise the custom field, the image field, and the id of the asset. [custom_field]_[file/images_field]_fileID. You can inspect any files or images field where you have custom fields and you'll see the same thing. No, no repeaters.
  15. For some reason I'm running into an issue here with trying to add custom fields to an images field. ProcessWire\PageFinderSyntaxException Field does not exist: author_images_....
  16. Macrura

    Aaron Copland

    @MarkE - The events just have a page field multiple where you select the works being performed. Some events come in through Boosey and those have a reference ID we store so those are auto assigned. Works pages just have a section that searches for upcoming events and outputs them. But there are a ton of other ways that works are connected to each other, using versions, members and custom taxonomies that focus the relationships that are specified...
  17. On one of the sites, the host put this in, so if you figure out the ID of which rule is being triggered, you would add this, in addition to the more general snippet. <LocationMatch "/"> SecRuleRemoveById 77218500 </LocationMatch> If you have access to the Formbuilder forum, there are around 4-5 posts about this similar issue with various examples of htaccess rules, remove by ID etc.
  18. in root; you can also exclude certain rules , ill check some of the other sites
  19. I have a hosting account that runs litespeed, and i use this snippet in the .htaccess, which was recommended by Ryan. <IfModule security2_module> # Allow ModSec rule processsing without disruptive action SecRuleEngine DetectionOnly SecFilterEngine Off SecFilterScanPOST Off </IfModule>
  20. Macrura

    Aaron Copland

    In an ongoing effort to provide a sort of case study, and more info about this, I'll post random screens and info about the various features of this site. (1) Custom Dashboards The site uses a custom module that supports multiple dashboards. Any given dashboard is configurable and access controlled also. This is the main dashboard: (2) The admin editor pages take advantage of some great modules, namely RuntimeMarkup @kongondo, PageFieldInfo @Robin S, Field Descriptions Extended and more, There is also a new module not released yet called Admin Comments, which for this project got a lot of use. When dealing with a large and complex data collection as was the case with this project, the editors benefited from the ability to have the data auto-analyzed on each work so the "auto flags" field helped with that. The comments also allowed editors to post information, ideas and comments right into the page editor. The AdminComments module also provides the option for any posted comment to be emailed to the other team members (selectable), and the notification email (which is customizable) allows the recipient to click directly to the editor for that page. This saved incalculable hours of work, and enhanced communication during the project, across this large data set.
  21. @daiquiri, the homepage is sacred in the sense that it represents the root of the site (/) and all pages must descend from this root page, this is fundamental to the structure of the internet, domains and such. PW was deliberately designed this way from the inception, as it mirrors the "reality" of the internet - the descendant tree structure of a website's pages off the root. Your content configuration may not be sustainable if you find yourself having to go through the effort you are describing. But if you know the API, you can easily change pages of any type of template to a new parent with 1-2 lines of api code.
  22. @daiquiri - with respect, i think you're missing a larger point about this system. Basically what you are trying to do doesn't make any sense, and you can't compare to WordPress because WP is a bucket structured system whereas PW is a hierarchical tree system. The homepage represents the root of your site (/). That is basically a sacred thing here - it should not be changed, and it should not need to be changed so i think you should re-assess why you need/want to do this and come up with a different way or reconfigure your thinking about how to achieve what you want. and in all of the years of working and developing in this, i have never heard of anyone needing or wanting to clone the homepage. The easy way to do it is: Current Home Page with old template (home.php) New Homepage (subhome.php) move all public content branches below this new branch Some subpage Some other subpage Hundreds of other sub and sub sub sub pages with lots of content, which I don't want to manually move around/clone etc then just reconfigure your code in home.php and subhome.php (e.g. create a new home.php and rename home.php to subhome.php)
  23. @ragnarokkr, i've read a little of this thread and am wondering if you're aware you can set a page to be a system page and then it is not going to be deleted. I don't see the difference between using a page in the tree for storing images (or a page with children) vs. a folder. Either one can be deleted. But setting a page as System, Non-deletable and locked ID, name, template, parent (status not removeable via API) is probably even more solid than a folder.
×
×
  • Create New...