Jump to content

adrian

PW-Moderators
  • Posts

    10,902
  • Joined

  • Last visited

  • Days Won

    349

Everything posted by adrian

  1. @teppo - on another note, I just got this logged error overnight: PHP Warning: preg_match(): Compilation failed: missing closing parenthesis at offset 62 in /site/modules/SearchEngine/lib/Renderer.php:388 It came from this query: https://ian.umces.edu/search/?q=Ferocactus+wislizeni+(Fishhook+Barrel+Cactus It looks like someone was trying to find that exact cactus symbol by name, but left off the trailing close parenthesis. Currently I am using: $query = $searchEngine->find($input->get->q, $findOptions); as my search query. I assumed that SearchEngine would sanitize the input, but even using selectorValue or text sanitizers don't work in this case, because they both allow parentheses. Do you think this is a situation that we should manage, or SearchEngine should take care of?
  2. I have the same in mine, although perhaps your approach is more efficient. I went with this when outputting the tab buttons, using a ->has() to see if there are any results for the template/tab. I thought given the performance of PW's has() that this would be the best approach, but I didn't dive into it too much. I should go see what you did. foreach($types as $name => $label): if($name != 'all' && $pages->has('search_index'.$findOptions['operator'].$query->query.', template='.$name) === 0) continue; ?> <a class="button small<?=((!isset($type) && $name == 'all') || (isset($type) && $name === $type) ? ' buttonactive' : '')?>" href="<?=$page->url?>?q=<?=$input->get->q?>&type=<?=$name?>"><?=$label?></a> <?php endforeach; Those do sound like they would do the same thing. I think I'll set up a test with the module's core approach and see what happens. Thanks again.
  3. Hey @bernhard - just resave Tracy's settings and this will go away. It only happens when updating quite old versions.
  4. Thanks @teppo - everything looks great now. Now I guess I need to figure out if there is any advantage to using the inbuilt grouping vs my approach. Obviously it handles all indexed templates automatically, but then mine gives the flexibility to include the results from some templates under "All", but not have a dedicated tab for them which can be handy in some cases. My question for you then, is there any performance gain in using the inbuilt grouping? I haven't explored the code, but my instinct is that you're not really doing anything different to me, except for the big convenience factor of having this work so easily.
  5. <?php $searchEngine = $modules->get('SearchEngine'); echo $searchEngine->renderStyles(); echo $searchEngine->renderScripts(); $findOptions = [ 'group_by' => 'template' ]; $renderOptions = [ 'results_grouped' => 'template.label' ]; $query = $searchEngine->find($input->get->q, $findOptions); echo $searchEngine->renderResults($renderOptions, $query); {"SearchEngine":{"version":"0.29.2","settings":{"indexed_fields":["title","summary","body"],"indexed_templates":["basic-page","home","license","licenses"],"find_args__sort":"sort","find_args__operator":"~=","index_pages_now_selector":"has_parent=1","index_field":"search_index","override_compatible_fieldtypes":"","compatible_fieldtypes":["FieldtypeEmail","FieldtypeFieldsetPage","FieldtypeDatetime","FieldtypeText","FieldtypeTextLanguage","FieldtypeTextarea","FieldtypeTextareaLanguage","FieldtypePageTitle","FieldtypePageTitleLanguage","FieldtypeCheckbox","FieldtypeInteger","FieldtypeFloat","FieldtypeURL","FieldtypeModule","FieldtypeFile","FieldtypeImage","FieldtypeSelector","FieldtypeOptions","FieldtypeRepeater","FieldtypeRepeaterMatrix","FieldtypePageTable","FieldtypePage","FieldtypeTable","FieldtypeTextareas"],"indexer_actions":[],"render_args__themes_directory":"","debugger_page":0,"debugger_query":"","debugger_query_args":"{}","uninstall":"","submit_save_module":"Submit"}}}
  6. Thanks @teppo - I am seeing the tabbed results now. The only thing that's weird is that on the "All" tab, it shows all the results, then it shows the results for the different templates below separated by template, so each result shows up twice. Viewing specific results (by clicking on a template tab/button), they are showing correctly. Hopefully this shows what I mean. Can you see this at your end as well?
  7. @teppo - I think I am the one who was asleep - not sure how I ended up with 'group_by option' but if I change it to 'group_by' then I get this error (maybe also PHP8 related) SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':pf19s0X IN BOOLEAN MODE)) ) )) \n LEFT JOIN templates AS pwse_t ON pwse_t.id=p...' at line 4
  8. I'm actually not sure why I used that and then $args['operator'] instead of simply: $findOptions['operator'] I can't see any reason at the moment not to change to the simpler version.
  9. Please ignore the awful zurb foundation markup - this was an ASAP conversion of a site from an unusable Drupal setup so I rebuilt using the old site's markup / css. At some point this will be redone as well, but at least it all works now ? You can see though that each button adds the type and then I use that like this: $findOptions['selector_extra'] = 'template=' . $type; You can ignore the hook on Renderer::renderResult at the top - it's just for adding the thumbnails to the results.
  10. Thanks @teppo - all those errors are now gone. I am trying out the group by template options but not seeing any delineation in the rendered results, with them all being in the same <ul> block. Perhaps I am missing something. $searchEngine = $modules->get('SearchEngine'); echo $searchEngine->renderStyles(); echo $searchEngine->renderScripts(); $findOptions = [ 'group_by option' => 'template' ]; $renderOptions = [ 'results_grouped' => 'template.label' ]; $query = $searchEngine->find($input->get->q, $findOptions); echo $searchEngine->renderResults($renderOptions, $query); I am also curious how you have handled pagination of results in this tabbed results scenario (since I am not getting it working, I am not sure yet whether this works or not). What I actually ended up doing for my project that just went live is to return all results, but then have buttons that look like tabs, but each one is for a different template and I use them to add a "type" (template) parameter to the query string, eg: https://ian.umces.edu/search/page2?type=media&q=seagrass - this ensures that pagination works within the results for that template. OT, but I am also seeing errors with the Debugger. 1) The Debug Index, Debug Page and Reindex Page buttons always gives me this error: array_map(): Argument #2 ($array) must be of type array, null given in /modules/SearchEngine/lib/Debugger.php:628 2) The Debug Query always give me: PHP Warning: Undefined array key "active" in .../modules/SearchEngine/lib/Renderer.php:371
  11. Well, in this case, it's Teppo who is amazing ?
  12. v4.21.52 fixes an issue with uploading images to repeatermatrix fields. This fix might also take care of a few other randomly seen bugs, although only time will tell with those. Regardless, I think this is a pretty important update for everyone.
  13. Hi @teppo - I am excited for these new features - thanks for you hard work. Unfortunately, when I install it I get this error: Deprecated: Required parameter $query follows optional parameter $args in /Users/ajones/Sites/ecoreportcard/site/modules/SearchEngine/lib/Renderer.php on line 615 Deprecated: Required parameter $type follows optional parameter $args in /Users/ajones/Sites/ecoreportcard/site/modules/SearchEngine/lib/Renderer.php on line 718 Deprecated: Required parameter $type follows optional parameter $args in /Users/ajones/Sites/ecoreportcard/site/modules/SearchEngine/lib/Renderer.php on line 755 and then when I try to do a search, I get: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':pf19s0X IN BOOLEAN MODE) ) )) \n LEFT JOIN templates AS pwse_t ON pwse_t.id=pa...' at line 4 Reverting to the last version instantly fixes these. Note that for my testing I am using the simple: <?= $modules->get('SearchEngine')->render() ?> approach to handle everything. Let me know if you need me to dig a little deeper.
  14. This sort of thing is possible, but you might find life easier with https://processwire.com/modules/search-engine/ - it will also be much more performant for the end user.
  15. The only thing I know of is: https://github.com/apeisa/Discussions I used it once on a site that had a limited life. It worked OK, but it's very low on functionality. Not sure if it should really have a modules directory given it's state, but it's also listed here: https://processwire.com/modules/discussions/
  16. There is also this new module from @BitPoet
  17. The problem is that Ryan doesn't seem to update the docs on the website until he commits a new master version which is I why I always use the API panel in Tracy ?
  18. I actually find the Debug panel > Selector Queries section more useful because it shows which selector calls result in which SQL queries.
  19. Also, this video: https://www.youtube.com/watch?v=7kcRf3iUgSk It's horribly put together, but the I wonder if perhaps there is something to the "link to malicious or hacked page" - perhaps a link on your site is linking to an external malicious site?
  20. @Kiwi Chris - I haven't ever seen this warning, but it sounds potentially something that needs to be taken care of. Have you seen these info pages? https://developers.google.com/search/docs/advanced/security/social-engineering https://www.getastra.com/blog/911/social-engineering-content-detected/ https://software-wikipedia.medium.com/social-engineering-content-detected-on-your-site-how-to-fix-it-238cd3fb9d65 https://www.trendmicro.com/vinfo/pl/security/news/cybercrime-and-digital-threats/google-now-warns-against-social-engineering-content https://software-wikipedia.medium.com/social-engineering-content-detected-on-your-site-how-to-fix-it-238cd3fb9d65
  21. Silly question perhaps, but have you applied the textformatter to the field where the video URLs are being embedded?
  22. Is the problem really related to the <p> tags? Any chances it's related to this: https://github.com/ryancramerdesign/TextformatterVideoEmbed/issues/16 Ryan seems to have dropped the ball with this module. Might be time to start using this instead: https://processwire.com/modules/textformatter-video-markup/
  23. Tracy's File Editor panel allows you to easily fix stuff. It doesn't have the file management component like this module, but it works for my needs when I am away from my dev machine.
  24. Click the icon after the "Console" in the title bar to see all the shortcuts
  25. Hi @MoritzLost - sorry about that - not sure how I messed up the keyboard shortcut. Should be working properly in the latest version. Note that I typically use the ALT/OPT + Enter to run snippets because it clears and runs in one action. Regarding deleting a saved snippet - did you do that from the Console panel, or directly from the file system? You should do it from the console panel so that it also removes the entry from its local storage so it doesn't try to load the snippet from disk.
×
×
  • Create New...