Jump to content
porl

ProcessPageList Tweak

Recommended Posts

Hi all.

I've made a small tweak to the ProcessPageList core module. I like the page actions hover feature but find it a bit fiddly hovering over the page labels. I made a change to (optionally, toggleable in settings) show the actions when hovering over the entire page row.

I mostly did this for myself but is there any interest in people using this? I'm not sure it is worth releasing as a full module, as it then would require tracking updates etc. and is just a small change in a couple of files. If there is interest though I guess I could request a pull request (if @ryan doesn't want to just use the diff file below).

 

ProcessPageList.diff

  • Like 1

Share this post


Link to post
Share on other sites

... and, if you want to do something that AOS doesn't support, one should use HOOKS instead of rewriting core modules, to avoid the version update hassle. 😉

TLDR; Following some example code from 2014/2015, (written before AOS was released).

Spoiler

class jhpArchiveHelper extends WireData implements Module {

	public static function getModuleInfo() {
		return array(
			'title' => 'JHP Archive Helper',
			'version' => 200,
			'summary' => "ImageImports with IPTC | add Pagelist Labelitems | provides ICON-markup | and more ...",
			'href' => '',
			'author' => 'horst',
			'singular' => true,
			'autoload' => true
		);
	}

	public function init() {
		$this->addHookBefore('InputfieldFile::fileAdded', $this, 'importImage');
		$this->addHookBefore('ProcessPageView::pageNotFound', $this, 'hookLog404Errors');
		$this->addHookAfter('Pages::save', $this, 'hookAfterPagesSave');
        $this->addHookAfter('ProcessPageListRender::getPageLabel', $this, 'addPageListLabelItems');  /* <=== */  
		$this->addHook('LazyCron::every30Minutes', $this, 'cacheModifiedStamps');
		if(wire('user')->isLoggedIn) {
			// we need to check more frequently to recognize changes in the lists
			$this->addHook('LazyCron::everyMinute', $this, 'cacheModifiedStamps');
		}
	}

	public function addPageListLabelItems($event) {
		$page = $event->arguments('page');
		if('album' == $page->template) {
			$archivnummer = $page->archivnummer == '' ? ' <span class="jhpPageListItemEmpty archivnummer">------</span> ' : ' <span class="jhpPageListItem archivnummer">' . $page->archivnummer . '</span> ';
            $event->return = $archivnummer . $event->return .
                ' <span class="jhpPageListImageCount">' . count($page->images) . '</span> ';
            return;
		}
		if('tools' == $page->template && 'albums-thumbs-colspan' == $page->parent->name) {
			$added = ' <span class="jhpPageListItem archivnummer">' . $page->name . '</span> ';
			$event->return = $added . $event->return;
            return;
		}
		if('architekt' == $page->template) {
			$architektenort = $page->ortarchitekt == '' ? ' <span class="jhpPageListItemEmpty"><strong style="color:white">kein Ort eingetragen</strong></span> ' : '';
			$event->return = $event->return . $architektenort;
            return;
		}
	}
          
    ...

 

 

  • Like 2

Share this post


Link to post
Share on other sites

Well then... I guess I can delete my module haha

Nice one, I'd heard of AOS but didn't think to check it for this feature. As I said, I was just playing with it for my own sake and thought that since it was a small change it might be able to be included. Didn't think to use hooks (and to be honest I'm not sure I would have known which ones to use and how to do it in this case).

Thanks for the input, happy to learn!

  • Like 4

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

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...