mirror of
https://github.com/silverstripe/silverstripe-versionfeed
synced 2024-10-22 11:05:31 +02:00
Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
55d18d8392 | ||
|
0b94f4b8a9 | ||
|
a2b6f45abd | ||
|
b12eee33ed | ||
|
0a17d0c537 | ||
|
66da923502 | ||
|
3c922398ca | ||
|
82872780eb | ||
|
900aae6a25 | ||
|
d082606ded |
12
.upgrade.yml
Normal file
12
.upgrade.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
mappings:
|
||||||
|
VersionFeed: SilverStripe\VersionFeed\VersionFeed
|
||||||
|
VersionFeed_Controller: SilverStripe\VersionFeed\VersionFeedController
|
||||||
|
VersionFeedSiteConfig: SilverStripe\VersionFeed\VersionFeedSiteConfig
|
||||||
|
CachedContentFilter: SilverStripe\VersionFeed\Filters\CachedContentFilter
|
||||||
|
ContentFilter: SilverStripe\VersionFeed\Filters\ContentFilter
|
||||||
|
RateLimitFilter: SilverStripe\VersionFeed\Filters\RateLimitFilter
|
||||||
|
\VersionFeed\Filters\CachedContentFilter: SilverStripe\VersionFeed\Filters\CachedContentFilter
|
||||||
|
\VersionFeed\Filters\ContentFilter: SilverStripe\VersionFeed\Filters\ContentFilter
|
||||||
|
\VersionFeed\Filters\RateLimitFilter: SilverStripe\VersionFeed\Filters\RateLimitFilter
|
||||||
|
VersionFeedFunctionalTest: SilverStripe\VersionFeed\Tests\VersionFeedFunctionalTest
|
||||||
|
VersionFeedTest: SilverStripe\VersionFeed\Tests\VersionFeedTest
|
10
README.md
10
README.md
@ -7,11 +7,15 @@
|
|||||||
|
|
||||||
The module creates an RSS feed on each page with their change history, as well as one for the entire site.
|
The module creates an RSS feed on each page with their change history, as well as one for the entire site.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
* Silverstripe ^4
|
||||||
|
|
||||||
|
**Note:** For a Silverstripe 3.x compatible version, please use [the 1.x release line](https://github.com/silverstripe/silverstripe-versionfeed/tree/1.2).
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```sh
|
Install with composer by running `composer require silverstripe/versionfeed` in the root of your Silverstripe project.
|
||||||
composer require silverstripe/versionfeed
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
@ -16,14 +16,15 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.1",
|
"php": "^7.4 || ^8.0",
|
||||||
"silverstripe/cms": "^5",
|
"silverstripe/cms": "^4",
|
||||||
"silverstripe/versioned": "^2",
|
"silverstripe/versioned": "^1",
|
||||||
"silverstripe/siteconfig": "^5"
|
"silverstripe/siteconfig": "^4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^9.5",
|
"phpunit/phpunit": "^9.5",
|
||||||
"squizlabs/php_codesniffer": "^3"
|
"silverstripe/framework": "^4.10",
|
||||||
|
"squizlabs/php_codesniffer": "^3.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
@ -6,6 +6,8 @@ eo:
|
|||||||
TITLECHANGED: 'Titolo estas ŝanĝita:'
|
TITLECHANGED: 'Titolo estas ŝanĝita:'
|
||||||
Warning: 'Publikigi la historion ankaŭ malkaŝos la ŝanĝojn ĝis tiam protektitajn kontraŭ publika vido.'
|
Warning: 'Publikigi la historion ankaŭ malkaŝos la ŝanĝojn ĝis tiam protektitajn kontraŭ publika vido.'
|
||||||
Warning2: 'Ŝanĝi la alirajn agordojn tiel ke ĉi tiu paĝo, aŭ paĝoj sub ĝi, fariĝas publike alireblaj <br>eble rezultigos ke publikiĝos ĉiuj historiaj ŝanĝoj en tiuj paĝoj. Bonvole rekonsideru <br> la sekcion "Publika historio" de ĉi tiu sekcio, por certigi ke nur intencita informo publikiĝu.'
|
Warning2: 'Ŝanĝi la alirajn agordojn tiel ke ĉi tiu paĝo, aŭ paĝoj sub ĝi, fariĝas publike alireblaj <br>eble rezultigos ke publikiĝos ĉiuj historiaj ŝanĝoj en tiuj paĝoj. Bonvole rekonsideru <br> la sekcion "Publika historio" de ĉi tiu sekcio, por certigi ke nur intencita informo publikiĝu.'
|
||||||
|
db_PublicHistory: 'Publika historio'
|
||||||
SilverStripe\VersionFeed\VersionFeedSiteConfig:
|
SilverStripe\VersionFeed\VersionFeedSiteConfig:
|
||||||
ALLCHANGES: 'Ĉiuj paĝaj ŝanĝoj'
|
ALLCHANGES: 'Ĉiuj paĝaj ŝanĝoj'
|
||||||
ALLCHANGESLABEL: 'Ĉieaj ŝanĝoj fluu en publikan'
|
ALLCHANGESLABEL: 'Ĉieaj ŝanĝoj fluu en publikan'
|
||||||
|
db_AllChangesEnabled: 'Ĉiuj ŝanĝoj enŝaltitaj'
|
||||||
|
13
lang/sk.yml
Normal file
13
lang/sk.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
sk:
|
||||||
|
SilverStripe\VersionFeed\VersionFeed:
|
||||||
|
LABEL: 'Zverejniť históriu'
|
||||||
|
SINGLEPAGEFEEDTITLE: 'Aktualizácie stránky {title}'
|
||||||
|
SITEFEEDTITLE: 'Aktualizácie {title}'
|
||||||
|
TITLECHANGED: 'Názov sa zmenil:'
|
||||||
|
Warning: 'Zverejnením histórie sa zverejnia aj zmeny, ktoré boli v tom čase chránené pred zrakom verejnosti.'
|
||||||
|
Warning2: 'Zmena nastavení prístupu tak, aby sa táto stránka alebo stránky pod ňou stali verejne prístupné,<br>môže viesť k zverejneniu všetkých historických zmien aj na týchto stránkach.<br> Skontrolujte nastavenia v časti "Verejná história", aby ste sa uistili, že sú zverejnené iba zamýšľané informácie.'
|
||||||
|
db_PublicHistory: 'Verejná história'
|
||||||
|
SilverStripe\VersionFeed\VersionFeedSiteConfig:
|
||||||
|
ALLCHANGES: 'Všetky zmeny stránky'
|
||||||
|
ALLCHANGESLABEL: 'Zverejnite informačný kanál globálnych zmien'
|
||||||
|
db_AllChangesEnabled: 'Všetky zmeny povolené'
|
@ -6,6 +6,7 @@ sl:
|
|||||||
TITLECHANGED: 'Spremenjen naslov:'
|
TITLECHANGED: 'Spremenjen naslov:'
|
||||||
Warning: 'Objava zgodovine bo razkrila tudi spremembe, ki do sedaj niso bile javno objavljene.'
|
Warning: 'Objava zgodovine bo razkrila tudi spremembe, ki do sedaj niso bile javno objavljene.'
|
||||||
Warning2: 'Sprememba nastavitev dostopa tako, da so so ta stran ali njene podstrani dostopne javnosti, <br> lahko povzroči objavo tudi vseh sprememb na omenjenih straneh. Podrobno preverite <br> seznam sprememb in se prepričajte, da boste razkrili samo tiste informacije, ki jih želite.'
|
Warning2: 'Sprememba nastavitev dostopa tako, da so so ta stran ali njene podstrani dostopne javnosti, <br> lahko povzroči objavo tudi vseh sprememb na omenjenih straneh. Podrobno preverite <br> seznam sprememb in se prepričajte, da boste razkrili samo tiste informacije, ki jih želite.'
|
||||||
|
db_PublicHistory: 'Javna zgodovina'
|
||||||
SilverStripe\VersionFeed\VersionFeedSiteConfig:
|
SilverStripe\VersionFeed\VersionFeedSiteConfig:
|
||||||
ALLCHANGES: 'Vse spremembe'
|
ALLCHANGES: 'Vse spremembe'
|
||||||
ALLCHANGESLABEL: 'Javno objavi seznam s krovnimi spremembami'
|
ALLCHANGESLABEL: 'Javno objavi seznam s krovnimi spremembami'
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace SilverStripe\VersionFeed;
|
namespace SilverStripe\VersionFeed;
|
||||||
|
|
||||||
|
use SilverStripe\Dev\Deprecation;
|
||||||
use SilverStripe\CMS\Model\SiteTreeExtension;
|
use SilverStripe\CMS\Model\SiteTreeExtension;
|
||||||
use SilverStripe\Core\Config\Config;
|
use SilverStripe\Core\Config\Config;
|
||||||
use SilverStripe\Forms\CheckboxField;
|
use SilverStripe\Forms\CheckboxField;
|
||||||
@ -11,7 +12,7 @@ use SilverStripe\ORM\ArrayList;
|
|||||||
use SilverStripe\ORM\DataObject;
|
use SilverStripe\ORM\DataObject;
|
||||||
use SilverStripe\ORM\FieldType\DBField;
|
use SilverStripe\ORM\FieldType\DBField;
|
||||||
use SilverStripe\SiteConfig\SiteConfig;
|
use SilverStripe\SiteConfig\SiteConfig;
|
||||||
use SilverStripe\View\Parsers\HtmlDiff;
|
use SilverStripe\View\Parsers\Diff;
|
||||||
use SilverStripe\CMS\Model\SiteTree;
|
use SilverStripe\CMS\Model\SiteTree;
|
||||||
|
|
||||||
class VersionFeed extends SiteTreeExtension
|
class VersionFeed extends SiteTreeExtension
|
||||||
@ -79,7 +80,7 @@ class VersionFeed extends SiteTreeExtension
|
|||||||
$qLimit = (int)$limit + 1;
|
$qLimit = (int)$limit + 1;
|
||||||
$versions = $this->owner->Versions(
|
$versions = $this->owner->Versions(
|
||||||
"\"WasPublished\"='1' AND \"CanViewType\" IN ('Anyone', 'Inherit') $offset",
|
"\"WasPublished\"='1' AND \"CanViewType\" IN ('Anyone', 'Inherit') $offset",
|
||||||
"\"LastEdited\" DESC, \"ID\" DESC",
|
"\"SiteTree\".\"LastEdited\" DESC, \"SiteTree\".\"ID\" DESC",
|
||||||
$qLimit
|
$qLimit
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -94,7 +95,7 @@ class VersionFeed extends SiteTreeExtension
|
|||||||
if (isset($previous)) {
|
if (isset($previous)) {
|
||||||
// Produce the diff fields for use in the template.
|
// Produce the diff fields for use in the template.
|
||||||
if ($version->Title != $previous->Title) {
|
if ($version->Title != $previous->Title) {
|
||||||
$diffTitle = HtmlDiff::compareHTML($version->Title, $previous->Title);
|
$diffTitle = Diff::compareHTML($version->Title, $previous->Title);
|
||||||
|
|
||||||
$version->DiffTitle = DBField::create_field('HTMLText', null);
|
$version->DiffTitle = DBField::create_field('HTMLText', null);
|
||||||
$version->DiffTitle->setValue(
|
$version->DiffTitle->setValue(
|
||||||
@ -107,7 +108,7 @@ class VersionFeed extends SiteTreeExtension
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($version->Content != $previous->Content) {
|
if ($version->Content != $previous->Content) {
|
||||||
$diffContent = HtmlDiff::compareHTML($version->Content, $previous->Content);
|
$diffContent = Diff::compareHTML($version->Content, $previous->Content);
|
||||||
|
|
||||||
$version->DiffContent = DBField::create_field('HTMLText', null);
|
$version->DiffContent = DBField::create_field('HTMLText', null);
|
||||||
$version->DiffContent->setValue('<div>'.$diffContent.'</div>');
|
$version->DiffContent->setValue('<div>'.$diffContent.'</div>');
|
||||||
@ -168,6 +169,26 @@ class VersionFeed extends SiteTreeExtension
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compile a list of changes to the current page, excluding non-published and explicitly secured versions.
|
||||||
|
*
|
||||||
|
* @deprecated 2.0.0 Use VersionFeed::getDiffList() instead
|
||||||
|
*
|
||||||
|
* @param int $highestVersion Top version number to consider.
|
||||||
|
* @param boolean $fullHistory Set to true to get the full change history, set to false for a single diff.
|
||||||
|
* @param int $limit Limit to the amount of items returned.
|
||||||
|
*
|
||||||
|
* @returns ArrayList List of cleaned records.
|
||||||
|
*/
|
||||||
|
public function getDiffedChanges($highestVersion = null, $fullHistory = true, $limit = 100)
|
||||||
|
{
|
||||||
|
Deprecation::notice('2.0.0', 'Use VersionFeed::getDiffList() instead');
|
||||||
|
return $this->getDiffList(
|
||||||
|
$highestVersion,
|
||||||
|
$fullHistory ? $limit : 1
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public function updateSettingsFields(FieldList $fields)
|
public function updateSettingsFields(FieldList $fields)
|
||||||
{
|
{
|
||||||
if (!$this->owner->config()->get('changes_enabled')) {
|
if (!$this->owner->config()->get('changes_enabled')) {
|
||||||
|
@ -114,6 +114,7 @@ class VersionFeedController extends Extension
|
|||||||
AND ("PublicHistory" IS NULL OR "PublicHistory" = \'1\')
|
AND ("PublicHistory" IS NULL OR "PublicHistory" = \'1\')
|
||||||
ORDER BY "LastEdited" DESC LIMIT ' . $limit);
|
ORDER BY "LastEdited" DESC LIMIT ' . $limit);
|
||||||
$lastChange = $latestChanges->record();
|
$lastChange = $latestChanges->record();
|
||||||
|
$latestChanges->rewind();
|
||||||
|
|
||||||
if ($lastChange) {
|
if ($lastChange) {
|
||||||
// Cache the diffs to remove DOS possibility.
|
// Cache the diffs to remove DOS possibility.
|
||||||
@ -190,6 +191,7 @@ class VersionFeedController extends Extension
|
|||||||
{
|
{
|
||||||
if (!Config::inst()->get(VersionFeed::class, 'allchanges_enabled')
|
if (!Config::inst()->get(VersionFeed::class, 'allchanges_enabled')
|
||||||
|| !SiteConfig::current_site_config()->AllChangesEnabled
|
|| !SiteConfig::current_site_config()->AllChangesEnabled
|
||||||
|
|| !method_exists($this->owner, 'getSiteRSSLink')
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user