Code Monkey home page Code Monkey logo

kirby3-recently-modified's Introduction

Kirby 3 Recently Modified

Release Downloads Twitter

Kirby 3 Plugin to view recently modified pages by current User

Commercial Usage


Support open source!

This plugin is free but if you use it in a commercial project please consider to sponsor me or make a donation.
If my work helped you to make some cash it seems fair to me that I might get a little reward as well, right?

Be kind. Share a little. Thanks.

‐ Bruno
 
M O N E Y
Github sponsor Patreon Buy Me a Coffee Paypal dontation Hire me

Installation

  • unzip master.zip as folder site/plugins/kirby3-recently-modified or
  • git submodule add https://github.com/bnomei/kirby3-recently-modified.git site/plugins/kirby3-recently-modified or
  • composer require bnomei/kirby3-recently-modified

Screenshot

Section

recently-modified

Field

recently-modified

Usage

Add the section to your site or page blueprint to display a list of the most recently modified pages by the currently logged in user. The sections is not able to list the site itself since the section depends on a collection of pages for the query.

site/blueprints/site.yml

sections:
  listPagesModifiedByUser:
    type: recentlymodified
    headline: Your Recently Modified Pages
    # query

Optionally you can add the field to the site or any page blueprint to show the time and user that modified given content most recently. In contrast to the section the field is able to show most recent modified information for the site (content/site.txt).

site/blueprints/pages/default.yml

fields:
  showWhichUserModifiedPage:
    type: recentlymodified
    label: Recently Modified By
    # interval: 60

⚠️ This plugin has by default a 1 minute cache.

Query for the Section (not Field)

The plugins section comes with a default query that shows the most recent changes made by the currently logged in user. But you can define any other query you like.

Default Query

site.index(true).sortBy('modified', 'desc').onlyModifiedByUser

onlyModifiedByUser is a pagesmethod added by this plugin that filters the pages collection to only those pages that where modified by the currently logged in user. The plugin uses hooks to track what pages each user did edit.

Example 1

sections:
  recentarticles:
    type: recentlymodified
    headline: Recently Modified Articles
    query: site.find('articles').children.listed.sortBy('modified', 'desc')

Example 2

sections:
  mycollection:
    type: recentlymodified
    headline: My Collection
    query: kirby.collection('my-collection')
return [
    'bnomei.recently-modified.limit' => 25, // default: 7
    'bnomei.recently-modified.info' => function ($page) {
        return $page->id();
    },
    // other options...
];

TIP: You could use the query property, info and limit setting to show any list of pages you want. Just like simplified version of the pagetable plugin.

Known Limitations

  • You can not set multiple text/link/info settings. All instances of the recentlymodified section share the same.
  • The limit setting is always applied. If you want some of your instances to have a smaller number of items then call limit inside your custom query.

Settings

bnomei.recently-modified. Default Description
query ... see above
link function($page){...} callback to return the link
text function($page){...} callback to return the text
info function($page){...} callback to return the info
format Y/m/d H:i:s date format string
hooks true use hooks to track users modified pages
limit 7 limit list and cache items
expire 1 cache will expire n-minutes

Disclaimer

This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please create a new issue.

License

MIT

It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.

kirby3-recently-modified's People

Contributors

bnomei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

kirby3-recently-modified's Issues

Output broken when using 'date.handler' => 'intl'

I'd like to use this in a multi-language setup, but it seems to be broken when using 'date.handler' => 'intl' in config. In English, the date and time looks like this: 2023/44/28 11:: . Changing the language in the panel sometimes just displays false.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.