-
Posts
1,459 -
Joined
-
Last visited
-
Days Won
16
Everything posted by Ivan Gretsky
-
Changing the condition to use a super global variable indeed helped me to prevent _init.php from running once again. But in this case the TemplateFile object doesn't get any variables from _init.php which it need to render correctly. I thought, that I need to move all the code to another hook before the Page:render. So I made PageRender::beforeRenderPage hookable and moved the code there. But that still didn't work. I am definitely lost here((
-
Actually, if there is no more than one CKEditor field in a Repeater item, custom styles should work. Check it out again. But when there are more, I know no solution. Please give a thumb up to the issue and write a comment, so @ryan gets a notification. I has been a while without anything new on this issue, so your voice could make a difference)
-
I think, you could use MarkupPagerNav module directly with specific options. renderPager() function calls it internally like this. I guess, you need to adjust the baseUrl option.
-
Seems like double-posting worked for you better in this topic, @Jessie) Anyway, please do not double post not to clutter the forum)
-
No direct answer from me) Just googled that and this seems to be something you might want to take a look at.
-
Hi @Jessie! When does the error happen exactly? When you ad the field to the template? When you create the field?
-
function _x() not working within custom functions
Ivan Gretsky replied to froot's topic in API & Templates
How are you including this function? Is it in ProcessWire namespace? -
If it is only one project per user, you could use this module. If you need to grant a user access to 2 or more branches, you probably need to hide the tree of pages to that user and display accessible pages with a custom module. I hope I understood your question properly)
-
I checked my site that had custom styles. This is what I have there in site/modules/InputfieldCKEditor/mystyles.js: CKEDITOR.stylesSet.add( 'mystyles', [ { name: 'Inline Code', element: 'code' }, { name: 'Inline Quotation', element: 'q' }, { name: 'Left Aligned Photo', element: 'img', attributes: { 'class': 'align_left' } }, { name: 'Right Aligned Photo', element: 'img', attributes: { 'class': 'align_right' } }, { name: 'Centered Photo', element: 'img', attributes: { 'class': 'align_center' } }, { name: 'Small', element: 'small' }, { name: 'Deleted Text', element: 'del' }, { name: 'Inserted Text', element: 'ins' }, { name: 'Cited Work', element: 'cite' }, { name: 'Left Heading', element: 'h2', attributes: { 'class': 'u-align-left' } }, { name: 'Right Heading', element: 'h2', attributes: { 'class': 'u-align-right' } }, { name: 'Important', element: 'div', attributes: { 'class': 'u-important u-important--brand' } }, { name: 'Bordered Table', element: 'div', attributes: { 'class': 'u-table-bordered' } } ]); My added styles are at the end of the list. They do work, if there is only one CKEditor field on the page edited (see this issue). Also keep in mind, that the styles for ul elements are only shown when this type of element is selected in the editor working area. P.S. If everything works out, don't forget to add you custom styles to site/modules/InputfieldCKEditor/contents.css or site/modules/InputfieldCKEditor/contents-inline.css so they display as they should: ... .u-important--brand { font-size: 21px; line-height: 1.3; padding-left: 40px; } .u-table-bordered { color: blue; }
-
Search selectors and empty repetear fields
Ivan Gretsky replied to lele_ballack's topic in General Support
Maybe something as simple as this will do? if(isset($input->get->q) && !empty($input->get->q)) { ... -
Good day! I am trying to do a frontend check in a Page::render hook and return completely different markup on condition: <?php // This is site/ready.php wire()->addHookAfter('Page::render', function (HookEvent $event) { $page = $event->object; ... //Some condition here $config = wire("config"); $t = new ProcessWire\TemplateFile($config->paths->templates . "test.php"); $t->setArray(array( 'page' => wire()->pages->get("1234"), ) ); $t->setPrependFilename($config->paths->templates . '_init.php'); $t->setAppendFilename($config->paths->templates . '_main.php'); $out = $t->render(); $event->return = $out; } But I get this error: Cannot redeclare SomeFubction() (previously declared in ...\site\templates\_func.php:123) _func.php is included with include_once in _init.php. But somehow _init.php happens to run twice. Can't get my head around this one. Please help!
-
Getting the page title a repeater field is on from a pageField
Ivan Gretsky replied to a-ok's topic in General Support
Resurrecting this is an old topic) Is there now an easy way to use the title of a page a repeater field is on in a Custom Page Label Format? Like {getForPage.title} with a special keyword? Probably like {parent.title}, which works. I solved the problem with the hook, but it could've been easier) -
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