-
Posts
1,473 -
Joined
-
Last visited
-
Days Won
16
Everything posted by Ivan Gretsky
-
A bit offtop... Maybe such epic modules like Tracy Debugger (and AOS, and some else, probably) could get their own sub-forums under Modules/Plugins? Kind of like Padloper got its own under Vip Support? I am sure, it can be done and (arguably) would make it easier for people to find stuff. But would it make it easier for maintainers? What do you think, @adrian?
-
That's the point of it all - I do not want to rewrite all $this occurrences))) Thought there is some smart way to avoid this. $this2 was a try to somehow substitute $this with something I can get api variables from. But I guess this will not help if there is some module method/property calls. Maybe I could inject $this as a dependency from a hook somehow (I do not even understand if I am writing proper terms here))))))?
-
Thanks, @kongondo! Sorry for late reply. But now I am at this once again) This is what I'm trying to do in admin.php: /** * Replace the execute method of ProcessLogin module to replace * the getLoginName() call with getLoginName2(). The former method is not hookable. * The latter method is added via hook/ * * All this is done to allow users to login with their email changed on the fly * to user name (replace '@' with '-'). * */ wire()->addHookBefore('ProcessLogin::execute', 'processLoginExecute2'); ... getLoginExecute2() is just a copy of ProcessLogin::execute with minor changes. I copy it to admin.php like this: function processLoginExecute2(HookEvent $event) { $event->replace = true; /** @var Session $session */ $session = $this2->wire('session'); /** @var WireInput $input */ $input = $this2->wire('input'); /** @var User $user */ $user = $this2->wire('user'); if($user->isLoggedin()) { ... And then I get an error with $this variable. It must be it is not in scope or something.
-
As I get it, partials came first (there were no components at the time). And components were added later due to user requests. I think too that only one (the components)) should stay in the future. But I may be missing something.
-
Welcome to the forums, @rookie! The question you're asking is very interesting and important. But I think you have to read the forums a bit before continuing with it. For now it seems like any answer will be not good enough for you. So do search the forums for 'page builder' and 'content builder'. It is better to search with google though) It is possible to do it with the page structure you're showing. But without Repeater an PageTable fields (or preferably RepeaterMatrix) it will be pretty hard to maintain. So take your time to explore a bit.
- 7 replies
-
- 1
-
- blocks
- page builder
-
(and 1 more)
Tagged with:
-
Good day! I have a need to replace the core class method with a hook. There is an example of this in docs, It is from the class context. I need it from the template context (admin.php). I want to change the behavior of the core class method a little bit, so do not want to re-write it entirely. So I copy-and-paste the method to the function that should be used to replace it and make my minor changes. But multiple uses of $this cause an error I am not sure how to resolve. Could you please advise how to do it. Replace the method of the core class from template context not having to rewrite the entire method?
-
Just like ProcessWire)
-
This is where I started)) Thanks, I'll look into it. But I always try to first use a native solution if it exists) And PW always tried to be all-in-one thing. I am actually thinking about building a module on this feature, so do not want to have an external dependency. The 1st part I didn't understand) But the second looks promising. Could you share an example of this in a template file context?
-
Good day! Is there an easy way to add events that some listeners can subscribe to in ProcessWire? I am thinking about adding these events in the template context, so I can add some listeners later. Preferably I'd like to be able to pass some variables to the listener. I am guessing it could be done calling some hookable method of a specially-made class. But please share anything more specific on that if you got some experience, colleagues.
-
Super! Love reading those long feature lists for the new master versions! I usually read every week's posts too. But by the time a new master is out, I forget a half of new cool things that were added. So they come as new and bring the joy once again, like finding a banknote in a pocket of pants you didn't wear for while ? Great release for ProcessWire once again!
- 3 replies
-
- 11
-
Omit access check in (showif) field dependencies?
Ivan Gretsky replied to kater's topic in API & Templates
This should be possible to do with a hook. Look here for inspiration. Or just search for something like "hook admin inputfield show" (preferably, in Google) -
The hook priority did the trick! Thanks @adrian! I have found the post about the module autoload order. But it did not help me as you predicted (still not quite sure why, though).
-
As of now I am a user of this feature too) Thanks to @adrian's link. I did need it to fix this issue. If you read through the linked thread you'll see that I confused module autoload order with hook order. Actually I thought that the module, that gets loaded first, would add the hook first (or last). So the autoload order would affect hook order. I did play with autoload order of the modules without success. Why is it not it the case? If it was, there could a chance to add an option to override module autoload order in admin, making it adjustable without code hacks , solving this question.
-
Oh, I see. I've indeed confused the two. So looking at the thread it seems I need to modify the modules code, right? No way to sort'em afterwards? Sorry for asking the questions in the wrong thread))
-
Cool! I was sure it has made it's way into the core though, so was looking in the blog posts... Or was it just your Tracy Debugger that got privileged))
-
Thanks! I remember reading about the possibility to change the module load priority, but cannot find it( Could you direct me there to make the answer complete for someone finding it later?
-
Good day, @adrian! I have found your super-module installed on a client's site. And it lives alongside PageEditPerUser. The If no match, give all access or no access? option is set to No Access. For some users we need to apply restrict branch per user limitation via your module. But for others we need to limit page access on a per page basis with PageEditPerUser, leaving the branch option empty. But this does not seem to work. If the branch_parent field is left empty it still rules over other page edit permissions. Could you please explain, why is that happening, can we get around it (like changing the order of hooks applied or something). Or maybe suggest another way to deal with it?
-
There is no easy way I know of to do exactly what you're asking for. But as far as I understand the actual need is to find pages with selected templates. If you do not need to select the templates to be used in selector in admin, you should be able to hard-code the selector like this (see here for explanation): <?php $childChildren = $pages->find("template=template-a|template-b|template-c, sort=sort"); If you need to be able to select the templates in admin, you could add this module to some page, and then use it's value in a selector. Hope the module still works in current version of PW. There is an option to tag fields in admin and then use the tag instead of a list of fields in selectors. If the same thing worked for templates, that could be a good way to solve this task. But I did not find any docs on that, so you just might want give it a try first, and then fallback to the module if it's not possible.
-
Thanks, @ryan! Sometimes I think that ProcessWire is so mature and feature rich that only fixing the issues at hand can make it stand out even more than adding the new stuff (until the the stuff is added and I start thinking that I could not live without the features just added))) Thank you so much for keeping the right balance.
-
Just try it. I think it will work. I fixed my advice above a bit to make it more clear.
-
Aren't en and de just the titles names of corresponding language pages? So just change the name of the secondary language page to en.
-
Hey, @fruid! You can try this algorithm of actions: Export all the strings from German language. Import the exported German strings to default language, making it German. Remove all translations from the secondary language, making it untranslated => English. Maybe rename things here and there for the convenience. Change the name of the secondary page to en.
-
Hey, @strandoo! I think the trick is in the $options argument. Try something like this (or dig into the docs). $sanitizer->purify( $page->summary, array( 'CSS.AllowedProperties' => [] ) );