Jump to content
Sign in to follow this  
rash

[SOLVED] Currently edited page as an object?

Recommended Posts

Hi all,

when I’m editing a page in the backend, eg. /processwire/page/edit/?id=1032, is there a way to get the currently edited page (here: id=1032) as a page object, let’s call it $pageInEdit? The big plan behind would lead a bit too far, just a simple example what I would like to achieve:

if ($pageInEdit->field == 'foo') {
    // send a message or do something else
}

Thanks in advance

Share this post


Link to post
Share on other sites

Thanks, @dragan, I guessed exactly the same 🙂 Unfortunately that guess didn’t lead me to somewhere useful yet. When I do

$wire->addHookAfter('Page::loaded', function($event) {
    $page = $event->object;
    if ($page->whatever) {
        // do something
    }
});

$page contains all pages, not just the one I’m currently editing. Is there any chance to isolate this particular page in an object?

Share this post


Link to post
Share on other sites
1 hour ago, rash said:

The big plan behind would lead a bit too far

I don't think so... the trick with PW hooks is to find out which hook to use, and whether to use before or after. Page::loaded seems to be the wrong method to hook into for what you want to achieve.

Here are some code-bits I used in the past, and they all work as expected (inside site/ready.php)

    $this->addHookAfter('Pages::saveReady', function (HookEvent $event) {
        $page = $event->arguments[0];

// ----------

    $pages->addHookAfter("ProcessPageEdit::buildForm", function (HookEvent $event) {
        $page = $event->object->getPage();
        $form = $event->return;

// ----------

$this->addHookBefore('Pages::saved(template=invoice, parent=23444)', function(HookEvent $event) {
    $page = $event->arguments(0);

 

  • Like 4

Share this post


Link to post
Share on other sites

Another thanks @dragan , Page::loaded was indeed the wrong method. ProcessPageEdit::buildForm delivers the $page object I was looking for – that's great! I have to play around a little with details to find out whether After or Before work better for my needs. Btw: I didn’t want to conceal the big plan, but I first had to check if I get the edit page object done before I could start to concretize a few foggy approaches for getting some rather weird customer wishes done.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...