Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Zeka last won the day on February 3 2022

Zeka had the most liked content!

About Zeka

  • Birthday 04/12/1989

Profile Information

  • Gender
  • Location
    Kyiv, Ukraine

Recent Profile Visitors

5,097 profile views

Zeka's Achievements

Hero Member

Hero Member (6/6)




Community Answers

  1. Hi @Peter Troeger Could you please share the code from site/templates/admin.php file on 39 line?
  2. Hi @artfulrobot Have you seen this thread? Does it answer your question?
  3. Hi @Inxentas You can set before hook to Process::installPage and Process::uninstallPage from within your install and uninstall methods and from these hooks manually firstly remove nested pages the main process page of your module.
  4. Hi @DV-JF Probably you can use 1 option and then make a hook to 'ProcessPageView::pageNotFound' and within the hook, definition make a redirect to the login page like $this->wire()->pages('/login/')->url([ 'language' => $this->wire()->user->language, ])
  5. I think that the first example would be more performant as every declaration of the hook creates an additional WireHook object that should be processed. While I think that difference in performance impact would be hard to measure in a typical PW site, I would stick with the first way not from the performance side, but from the side of structure, clarity, and repetition of the code, but it still depends on actual hook and what it is doing etc
  6. Hi @Juergen Just tested and in my setup, if there are any nested fields in the fieldset with an error the parent fieldset is get automatically opened. From what I see in the code it is the intended behavior https://github.com/processwire/processwire/blob/master/wire/core/InputfieldWrapper.php#L777 In any case you can manually set collapsed state of inputfields inside the getModuleConfigInputfields public function getModuleConfigInputfields(array $data) { .... foreach ($inputfields->getErrorInputfields() as $inputfield) { $inputfield->collapsed = Inputfield::collapsedNo; } return $inputfields; } or even like this public function getModuleConfigInputfields(array $data) { .... foreach ($inputfields->getErrorInputfields() as $inputfield) { $inputfield->collapsed = Inputfield::collapsedNo; $parents = $inputfield->getParents(); foreach ($parents as $parent) { $parent->collapsed = Inputfield::collapsedNo; } } return $inputfields; }
  7. Hi @heldercervantes . Here are a few projects I've done, both previously done on WP. The first one is smaller 45k pages, the second one already has 484k pages. https://obukhiv.info/ https://socportal.info/
  8. Hi @MateThemes Usually, If I need something simple I use Repeater field with depth option, if something more advanced I use Repeater Matrix field with depth.
  9. @ryan Thank you for one more year with PW. It would be great to hear about the PW roadmap for 2023. Been playing with GPT chat for almost a week, crazy stuff. AI will definitely affect humanity more than the invention of manufacturing and electricity
  10. Hi @jsilmarovi You could bootstrap PW instance to your Laravel app https://processwire.com/docs/front-end/include/ and that use PW api to create or edit pages https://processwire-recipes.com/recipes/create-page-via-api/ https://gist.github.com/lokomotivan/e0a20f96b6df02970bccd700a119930e
  11. $page->repeater->find('status!=unpublished')
  12. Thanks, @teppo information and example, now it's more apparent to me how and where this feature could be used.
  13. Hi @teppo It would be great to get some insight into the usage of aliases. What is the intended way of using it?
  14. As @Ivan Gretsky said, the core of CKEditor 5 has changed and implementing it in PW will require significant changes, so maybe we should consider other options like https://imperavi.com/article. It is also used in Bolt CMS (not a promotion).
  15. Hi @digitalhandwerker In your scenario, where you are getting pages by their paths would be more appropriate to use $page->getByPath() method like $pages->getByPath('/en/', [ 'useLanguages' => true, ]);
  • Create New...