mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
Merge pull request #1354 from sminnee/remove-trailing-whitespace
MINOR: Remove trailing whitespace
This commit is contained in:
commit
f4d22d6cfe
24
.editorconfig
Normal file
24
.editorconfig
Normal file
@ -0,0 +1,24 @@
|
||||
# For more information about the properties used in
|
||||
# this file, please see the EditorConfig documentation:
|
||||
# http://editorconfig.org/
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 4
|
||||
indent_style = tab
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.yml]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
# Don't perform any clean-up on thirdparty files
|
||||
|
||||
[thirdparty/**]
|
||||
trim_trailing_whitespace = false
|
||||
insert_final_newline = false
|
@ -41,7 +41,7 @@ before_script:
|
||||
- php ~/travis-support/travis_setup_selenium.php --if-env BEHAT_TEST
|
||||
- php ~/travis-support/travis_setup_php54_webserver.php --if-env BEHAT_TEST
|
||||
|
||||
script:
|
||||
script:
|
||||
- "if [ \"$BEHAT_TEST\" = \"\" ]; then vendor/bin/phpunit cms/tests; fi"
|
||||
- "if [ \"$BEHAT_TEST\" = \"1\" ]; then vendor/bin/behat @cms; fi"
|
||||
|
||||
|
@ -23,4 +23,4 @@ CMSMenu::remove_menu_item('CMSPageReportsController');
|
||||
CMSMenu::remove_menu_item('CMSPageAddController');
|
||||
CMSMenu::remove_menu_item('CMSFileAddController');
|
||||
|
||||
CMSMenu::remove_menu_item("SiteConfigLeftAndMain");
|
||||
CMSMenu::remove_menu_item("SiteConfigLeftAndMain");
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* Publish items batch action.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage batchaction
|
||||
*/
|
||||
@ -23,7 +23,7 @@ class CMSBatchAction_Publish extends CMSBatchAction {
|
||||
|
||||
/**
|
||||
* Unpublish items batch action.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage batchaction
|
||||
*/
|
||||
@ -116,7 +116,7 @@ class CMSBatchAction_Restore extends CMSBatchAction {
|
||||
|
||||
/**
|
||||
* Delete items batch action.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage batchaction
|
||||
* @deprecated since version 4.0
|
||||
@ -141,7 +141,7 @@ class CMSBatchAction_Delete extends CMSBatchAction {
|
||||
if($page->canDelete()) $page->delete();
|
||||
else $status['error'][$page->ID] = true;
|
||||
|
||||
// check to see if the record exists on the live site,
|
||||
// check to see if the record exists on the live site,
|
||||
// if it doesn't remove the tree node
|
||||
$liveRecord = Versioned::get_one_by_stage( 'SiteTree', 'Live', array(
|
||||
'"SiteTree"."ID"' => $id
|
||||
@ -166,7 +166,7 @@ class CMSBatchAction_Delete extends CMSBatchAction {
|
||||
|
||||
/**
|
||||
* Unpublish (delete from live site) items batch action.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage batchaction
|
||||
* @deprecated since version 4.0
|
||||
|
@ -83,7 +83,7 @@ class CMSFileAddController extends LeftAndMain {
|
||||
asort($exts);
|
||||
$uploadField->Extensions = implode(', ', $exts);
|
||||
|
||||
$form = CMSForm::create(
|
||||
$form = CMSForm::create(
|
||||
$this,
|
||||
'EditForm',
|
||||
new FieldList(
|
||||
|
@ -50,7 +50,7 @@ class CMSPageAddController extends CMSPageEditController {
|
||||
new SelectionGroup_Item(
|
||||
'child',
|
||||
$parentField = new TreeDropdownField(
|
||||
"ParentID",
|
||||
"ParentID",
|
||||
"",
|
||||
'SiteTree',
|
||||
'ID',
|
||||
@ -61,8 +61,8 @@ class CMSPageAddController extends CMSPageEditController {
|
||||
)
|
||||
),
|
||||
$typeField = new OptionsetField(
|
||||
"PageType",
|
||||
sprintf($numericLabelTmpl, 2, _t('CMSMain.ChoosePageType', 'Choose page type')),
|
||||
"PageType",
|
||||
sprintf($numericLabelTmpl, 2, _t('CMSMain.ChoosePageType', 'Choose page type')),
|
||||
$pageTypes,
|
||||
'Page'
|
||||
),
|
||||
@ -71,7 +71,7 @@ class CMSPageAddController extends CMSPageEditController {
|
||||
sprintf(
|
||||
'<p class="message notice message-restricted">%s</p>',
|
||||
_t(
|
||||
'CMSMain.AddPageRestriction',
|
||||
'CMSMain.AddPageRestriction',
|
||||
'Note: Some page types are not allowed for this selection'
|
||||
)
|
||||
)
|
||||
@ -79,7 +79,7 @@ class CMSPageAddController extends CMSPageEditController {
|
||||
);
|
||||
$parentField->setSearchFunction(function ($sourceObject, $labelField, $search) {
|
||||
return DataObject::get(
|
||||
$sourceObject,
|
||||
$sourceObject,
|
||||
sprintf(
|
||||
"\"MenuTitle\" LIKE '%%%s%%' OR \"Title\" LIKE '%%%s%%'",
|
||||
Convert::raw2sql($search),
|
||||
@ -88,7 +88,7 @@ class CMSPageAddController extends CMSPageEditController {
|
||||
);
|
||||
});
|
||||
|
||||
// TODO Re-enable search once it allows for HTML title display,
|
||||
// TODO Re-enable search once it allows for HTML title display,
|
||||
// see http://open.silverstripe.org/ticket/7455
|
||||
// $parentField->setShowSearch(true);
|
||||
|
||||
@ -114,7 +114,7 @@ class CMSPageAddController extends CMSPageEditController {
|
||||
|
||||
$this->extend('updatePageOptions', $fields);
|
||||
|
||||
$form = CMSForm::create(
|
||||
$form = CMSForm::create(
|
||||
$this, "AddForm", $fields, $actions
|
||||
)->setHTMLID('Form_AddForm');
|
||||
$form->setAttribute('data-hints', $this->SiteTreeHints());
|
||||
@ -163,7 +163,7 @@ class CMSPageAddController extends CMSPageEditController {
|
||||
$editController->setCurrentPageID($record->ID);
|
||||
|
||||
Session::set(
|
||||
"FormInfo.Form_EditForm.formError.message",
|
||||
"FormInfo.Form_EditForm.formError.message",
|
||||
_t('CMSMain.PageAdded', 'Successfully created page')
|
||||
);
|
||||
Session::set("FormInfo.Form_EditForm.formError.type", 'good');
|
||||
|
@ -63,7 +63,7 @@ class CMSPageHistoryController extends CMSMain {
|
||||
*/
|
||||
public function compare($request) {
|
||||
$form = $this->CompareVersionsForm(
|
||||
$request->param('VersionID'),
|
||||
$request->param('VersionID'),
|
||||
$request->param('OtherVersionID')
|
||||
);
|
||||
|
||||
@ -90,11 +90,11 @@ class CMSPageHistoryController extends CMSMain {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the read only version of the edit form. Detaches all {@link FormAction}
|
||||
* Returns the read only version of the edit form. Detaches all {@link FormAction}
|
||||
* instances attached since only action relates to revert.
|
||||
*
|
||||
* Permission checking is done at the {@link CMSMain::getEditForm()} level.
|
||||
*
|
||||
*
|
||||
* @param int $id ID of the record to show
|
||||
* @param array $fields optional
|
||||
* @param int $versionID
|
||||
@ -156,7 +156,7 @@ class CMSPageHistoryController extends CMSMain {
|
||||
}
|
||||
}
|
||||
|
||||
$fields->addFieldToTab('Root.Main',
|
||||
$fields->addFieldToTab('Root.Main',
|
||||
new LiteralField('CurrentlyViewingMessage', $this->customise(array(
|
||||
'Content' => $message,
|
||||
'Classes' => 'notice'
|
||||
@ -181,11 +181,11 @@ class CMSPageHistoryController extends CMSMain {
|
||||
|
||||
|
||||
/**
|
||||
* Version select form. Main interface between selecting versions to view
|
||||
* Version select form. Main interface between selecting versions to view
|
||||
* and comparing multiple versions.
|
||||
*
|
||||
*
|
||||
* Because we can reload the page directly to a compare view (history/compare/1/2/3)
|
||||
* this form has to adapt to those parameters as well.
|
||||
* this form has to adapt to those parameters as well.
|
||||
*
|
||||
* @return Form
|
||||
*/
|
||||
@ -246,14 +246,14 @@ class CMSPageHistoryController extends CMSMain {
|
||||
'doCompare', _t('CMSPageHistoryController.COMPAREVERSIONS','Compare Versions')
|
||||
),
|
||||
new FormAction(
|
||||
'doShowVersion', _t('CMSPageHistoryController.SHOWVERSION','Show Version')
|
||||
'doShowVersion', _t('CMSPageHistoryController.SHOWVERSION','Show Version')
|
||||
)
|
||||
);
|
||||
|
||||
// Use <button> to allow full jQuery UI styling
|
||||
foreach($actions->dataFields() as $action) $action->setUseButtonTag(true);
|
||||
|
||||
$form = CMSForm::create(
|
||||
$form = CMSForm::create(
|
||||
$this,
|
||||
'VersionsForm',
|
||||
$fields,
|
||||
@ -295,7 +295,7 @@ class CMSPageHistoryController extends CMSMain {
|
||||
return $this->customise(array(
|
||||
"EditForm" => $form
|
||||
))->renderWith(array(
|
||||
$this->class . '_EditForm',
|
||||
$this->class . '_EditForm',
|
||||
'LeftAndMain_Content'
|
||||
));
|
||||
}
|
||||
@ -320,7 +320,7 @@ class CMSPageHistoryController extends CMSMain {
|
||||
public function doShowVersion($data, $form) {
|
||||
$versionID = null;
|
||||
|
||||
if(isset($data['Versions']) && is_array($data['Versions'])) {
|
||||
if(isset($data['Versions']) && is_array($data['Versions'])) {
|
||||
$versionID = array_shift($data['Versions']);
|
||||
}
|
||||
|
||||
@ -330,7 +330,7 @@ class CMSPageHistoryController extends CMSMain {
|
||||
return $this->customise(array(
|
||||
"EditForm" => $this->ShowVersionForm($versionID)
|
||||
))->renderWith(array(
|
||||
$this->class . '_EditForm',
|
||||
$this->class . '_EditForm',
|
||||
'LeftAndMain_Content'
|
||||
));
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* Base class for filtering the subtree for certain node statuses.
|
||||
*
|
||||
*
|
||||
* The simplest way of building a CMSSiteTreeFilter is to create a pagesToBeShown() method that
|
||||
* returns an Iterator of maps, each entry containing the 'ID' and 'ParentID' of the pages to be
|
||||
* included in the tree. The result of a DB::query() can then be returned directly.
|
||||
@ -9,7 +9,7 @@
|
||||
* If you wish to make a more complex tree, you can overload includeInTree($page) to return true/
|
||||
* false depending on whether the given page should be included. Note that you will need to include
|
||||
* parent helper pages yourself.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage content
|
||||
*/
|
||||
@ -23,7 +23,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
|
||||
|
||||
/**
|
||||
* List of filtered items and all their parents
|
||||
*
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_cache_ids = null;
|
||||
@ -44,7 +44,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
|
||||
protected $_cache_expanded = array();
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @var string
|
||||
*/
|
||||
protected $childrenMethod = null;
|
||||
|
||||
@ -55,7 +55,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
|
||||
|
||||
/**
|
||||
* Returns a sorted array of all implementators of CMSSiteTreeFilter, suitable for use in a dropdown.
|
||||
*
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function get_all_filters() {
|
||||
@ -132,7 +132,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
|
||||
|
||||
if($pages = $this->pagesIncluded()) {
|
||||
|
||||
// And keep a record of parents we don't need to get
|
||||
// And keep a record of parents we don't need to get
|
||||
// parents of themselves, as well as IDs to mark
|
||||
foreach($pages as $pageArr) {
|
||||
$parents[$pageArr['ParentID']] = true;
|
||||
@ -163,7 +163,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
|
||||
|
||||
/**
|
||||
* Applies the default filters to a specified DataList of pages
|
||||
*
|
||||
*
|
||||
* @param DataList $query Unfiltered query
|
||||
* @return DataList Filtered query
|
||||
*/
|
||||
@ -211,7 +211,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
|
||||
|
||||
/**
|
||||
* Maps a list of pages to an array of associative arrays with ID and ParentID keys
|
||||
*
|
||||
*
|
||||
* @param DataList $pages
|
||||
* @return array
|
||||
*/
|
||||
@ -272,7 +272,7 @@ class CMSSiteTreeFilter_PublishedPages extends CMSSiteTreeFilter {
|
||||
* Works a bit different than the other filters:
|
||||
* Shows all pages *including* those deleted from stage and live.
|
||||
* It does not filter out pages still existing in the different stages.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage content
|
||||
*/
|
||||
@ -301,7 +301,7 @@ class CMSSiteTreeFilter_DeletedPages extends CMSSiteTreeFilter {
|
||||
|
||||
/**
|
||||
* Gets all pages which have changed on stage.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage content
|
||||
*/
|
||||
@ -322,7 +322,7 @@ class CMSSiteTreeFilter_ChangedPages extends CMSSiteTreeFilter {
|
||||
|
||||
/**
|
||||
* Filters pages which have a status "Removed from Draft".
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage content
|
||||
*/
|
||||
@ -334,7 +334,7 @@ class CMSSiteTreeFilter_StatusRemovedFromDraftPages extends CMSSiteTreeFilter {
|
||||
|
||||
/**
|
||||
* Filters out all pages who's status is set to "Removed from draft".
|
||||
*
|
||||
*
|
||||
* @return SS_List
|
||||
*/
|
||||
public function getFilteredPages() {
|
||||
@ -350,7 +350,7 @@ class CMSSiteTreeFilter_StatusRemovedFromDraftPages extends CMSSiteTreeFilter {
|
||||
|
||||
/**
|
||||
* Filters pages which have a status "Draft".
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage content
|
||||
*/
|
||||
@ -362,7 +362,7 @@ class CMSSiteTreeFilter_StatusDraftPages extends CMSSiteTreeFilter {
|
||||
|
||||
/**
|
||||
* Filters out all pages who's status is set to "Draft".
|
||||
*
|
||||
*
|
||||
* @see {@link SiteTree::getStatusFlags()}
|
||||
* @return SS_List
|
||||
*/
|
||||
@ -379,7 +379,7 @@ class CMSSiteTreeFilter_StatusDraftPages extends CMSSiteTreeFilter {
|
||||
|
||||
/**
|
||||
* Filters pages which have a status "Deleted".
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage content
|
||||
*/
|
||||
@ -401,7 +401,7 @@ class CMSSiteTreeFilter_StatusDeletedPages extends CMSSiteTreeFilter {
|
||||
|
||||
/**
|
||||
* Filters out all pages who's status is set to "Deleted".
|
||||
*
|
||||
*
|
||||
* @see {@link SiteTree::getStatusFlags()}
|
||||
* @return SS_List
|
||||
*/
|
||||
@ -430,7 +430,7 @@ class CMSSiteTreeFilter_Search extends CMSSiteTreeFilter {
|
||||
/**
|
||||
* Retun an array of maps containing the keys, 'ID' and 'ParentID' for each page to be displayed
|
||||
* in the search.
|
||||
*
|
||||
*
|
||||
* @return SS_List
|
||||
*/
|
||||
public function getFilteredPages() {
|
||||
|
@ -12,7 +12,7 @@
|
||||
*
|
||||
* Subclasses of ContentController are generally instantiated by ModelAsController; this will create
|
||||
* a controller based on the URLSegment action variable, by looking in the SiteTree table.
|
||||
*
|
||||
*
|
||||
* @todo Can this be used for anything other than SiteTree controllers?
|
||||
*
|
||||
* @package cms
|
||||
@ -92,7 +92,7 @@ class ContentController extends Controller {
|
||||
|
||||
// If we've accessed the homepage as /home/, then we should redirect to /.
|
||||
if($this->dataRecord && $this->dataRecord instanceof SiteTree
|
||||
&& RootURLController::should_be_on_root($this->dataRecord) && (!isset($this->urlParams['Action']) || !$this->urlParams['Action'] )
|
||||
&& RootURLController::should_be_on_root($this->dataRecord) && (!isset($this->urlParams['Action']) || !$this->urlParams['Action'] )
|
||||
&& !$_POST && !$_FILES && !$this->redirectedTo() ) {
|
||||
$getVars = $_GET;
|
||||
unset($getVars['url']);
|
||||
@ -307,7 +307,7 @@ class ContentController extends Controller {
|
||||
</div>
|
||||
|
||||
<div id="switchView" class="bottomTabs">
|
||||
$viewPageIn
|
||||
$viewPageIn
|
||||
$items
|
||||
</div>
|
||||
</div>
|
||||
@ -339,10 +339,10 @@ HTML;
|
||||
* Inspects the associated {@link dataRecord} for a {@link SiteTree->Locale} value if present,
|
||||
* and falls back to {@link Translatable::get_current_locale()} or {@link i18n::default_locale()},
|
||||
* depending if Translatable is enabled.
|
||||
*
|
||||
*
|
||||
* Suitable for insertion into lang= and xml:lang=
|
||||
* attributes in HTML or XHTML output.
|
||||
*
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function ContentLocale() {
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
/**
|
||||
* Enhances error handling for a controller with ErrorPage generated output
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage controller
|
||||
*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* Extension to include custom page icons
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage controller
|
||||
*/
|
||||
@ -14,16 +14,16 @@ class LeftAndMainPageIconsExtension extends Extension {
|
||||
/**
|
||||
* Include CSS for page icons. We're not using the JSTree 'types' option
|
||||
* because it causes too much performance overhead just to add some icons.
|
||||
*
|
||||
* @return string CSS
|
||||
*
|
||||
* @return string CSS
|
||||
*/
|
||||
public function generatePageIconsCss() {
|
||||
$css = '';
|
||||
$css = '';
|
||||
|
||||
$classes = ClassInfo::subclassesFor('SiteTree');
|
||||
$classes = ClassInfo::subclassesFor('SiteTree');
|
||||
foreach($classes as $class) {
|
||||
$obj = singleton($class);
|
||||
$iconSpec = $obj->stat('icon');
|
||||
$obj = singleton($class);
|
||||
$iconSpec = $obj->stat('icon');
|
||||
|
||||
if(!$iconSpec) continue;
|
||||
|
||||
@ -33,9 +33,9 @@ class LeftAndMainPageIconsExtension extends Extension {
|
||||
// Legacy support: Add file extension if none exists
|
||||
if(!pathinfo($iconFile, PATHINFO_EXTENSION)) $iconFile .= '-file.gif';
|
||||
|
||||
$iconPathInfo = pathinfo($iconFile);
|
||||
$iconPathInfo = pathinfo($iconFile);
|
||||
|
||||
// Base filename
|
||||
// Base filename
|
||||
$baseFilename = $iconPathInfo['dirname'] . '/' . $iconPathInfo['filename'];
|
||||
$fileExtension = $iconPathInfo['extension'];
|
||||
|
||||
@ -52,4 +52,4 @@ class LeftAndMainPageIconsExtension extends Extension {
|
||||
return $css;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* Interface that is implemented by controllers that are designed to hand control over to another controller.
|
||||
* Interface that is implemented by controllers that are designed to hand control over to another controller.
|
||||
* ModelAsController, which selects up a SiteTree object and passes control over to a suitable subclass of ContentController, is a good
|
||||
* example of this.
|
||||
* @package cms
|
||||
|
@ -4,11 +4,11 @@
|
||||
* for CMS authors, usually for {@link SiteTree} objects with "stage" and "live" links.
|
||||
* Useful both in the CMS and alongside the page template (for logged in authors).
|
||||
* The class can be used for any {@link DataObject} subclass implementing the {@link CMSPreviewable} interface.
|
||||
*
|
||||
*
|
||||
* New item types can be defined by extending the {@link SilverStripeNavigatorItem} class,
|
||||
* for example the "cmsworkflow" module defines a new "future state" item with a date selector
|
||||
* to view embargoed data at a future point in time. So the item doesn't always have to be a simple link.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage content
|
||||
*/
|
||||
@ -101,7 +101,7 @@ class SilverStripeNavigator extends ViewableData {
|
||||
* Navigator items are links that appear in the $SilverStripeNavigator bar.
|
||||
* To add an item, extend this class - it will be automatically picked up.
|
||||
* When instanciating items manually, please ensure to call {@link canView()}.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage content
|
||||
*/
|
||||
@ -142,7 +142,7 @@ class SilverStripeNavigatorItem extends ViewableData {
|
||||
* Optional link to a specific view of this record.
|
||||
* Not all items are simple links, please use {@link getHTML()}
|
||||
* to represent an item in markup unless you know what you're doing.
|
||||
*
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLink() {}
|
||||
@ -157,7 +157,7 @@ class SilverStripeNavigatorItem extends ViewableData {
|
||||
*/
|
||||
public function getRecord() {
|
||||
return $this->record;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
@ -169,7 +169,7 @@ class SilverStripeNavigatorItem extends ViewableData {
|
||||
/**
|
||||
* As items might convey different record states like a "stage" or "live" table,
|
||||
* an item can be active (showing the record in this state).
|
||||
*
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isActive() {
|
||||
@ -179,7 +179,7 @@ class SilverStripeNavigatorItem extends ViewableData {
|
||||
/**
|
||||
* Filters items based on member permissions or other criteria,
|
||||
* such as if a state is generally available for the current record.
|
||||
*
|
||||
*
|
||||
* @param Member
|
||||
* @return Boolean
|
||||
*/
|
||||
@ -189,7 +189,7 @@ class SilverStripeNavigatorItem extends ViewableData {
|
||||
|
||||
/**
|
||||
* Counts as "archived" if the current record is a different version from both live and draft.
|
||||
*
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isArchived() {
|
||||
@ -205,7 +205,7 @@ class SilverStripeNavigatorItem extends ViewableData {
|
||||
));
|
||||
|
||||
$this->record->_cached_isArchived = (
|
||||
(!$currentDraft || ($currentDraft && $this->record->Version != $currentDraft->Version))
|
||||
(!$currentDraft || ($currentDraft && $this->record->Version != $currentDraft->Version))
|
||||
&& (!$currentLive || ($currentLive && $this->record->Version != $currentLive->Version))
|
||||
);
|
||||
}
|
||||
@ -280,7 +280,7 @@ class SilverStripeNavigatorItem_StageLink extends SilverStripeNavigatorItem {
|
||||
public function getLink() {
|
||||
$date = Versioned::current_archived_date();
|
||||
return Controller::join_links(
|
||||
$this->record->PreviewLink(),
|
||||
$this->record->PreviewLink(),
|
||||
'?stage=Stage',
|
||||
$date ? '?archiveDate=' . $date : null
|
||||
);
|
||||
@ -288,7 +288,7 @@ class SilverStripeNavigatorItem_StageLink extends SilverStripeNavigatorItem {
|
||||
|
||||
public function canView($member = null) {
|
||||
return (
|
||||
$this->record->hasExtension('Versioned')
|
||||
$this->record->hasExtension('Versioned')
|
||||
&& $this->getDraftPage()
|
||||
// Don't follow redirects in preview, they break the CMS editing form
|
||||
&& !($this->record instanceof RedirectorPage)
|
||||
@ -297,7 +297,7 @@ class SilverStripeNavigatorItem_StageLink extends SilverStripeNavigatorItem {
|
||||
|
||||
public function isActive() {
|
||||
return (
|
||||
Versioned::current_stage() == 'Stage'
|
||||
Versioned::current_stage() == 'Stage'
|
||||
&& !(ClassInfo::exists('SiteTreeFutureState') && SiteTreeFutureState::get_future_datetime())
|
||||
&& !$this->isArchived()
|
||||
);
|
||||
@ -341,7 +341,7 @@ class SilverStripeNavigatorItem_LiveLink extends SilverStripeNavigatorItem {
|
||||
|
||||
public function canView($member = null) {
|
||||
return (
|
||||
$this->record->hasExtension('Versioned')
|
||||
$this->record->hasExtension('Versioned')
|
||||
&& $this->getLivePage()
|
||||
// Don't follow redirects in preview, they break the CMS editing form
|
||||
&& !($this->record instanceof RedirectorPage)
|
||||
@ -380,7 +380,7 @@ class SilverStripeNavigatorItem_ArchiveLink extends SilverStripeNavigatorItem {
|
||||
return _t('SilverStripeNavigator.ARCHIVED', 'Archived');
|
||||
}
|
||||
|
||||
public function getMessage() {
|
||||
public function getMessage() {
|
||||
if($date = Versioned::current_archived_date()) {
|
||||
$dateObj = DBField::create_field('Datetime', $date);
|
||||
return "<div id=\"SilverStripeNavigatorMessage\" title=\"". _t('ContentControl.NOTEWONTBESHOWN', 'Note: this message will not be shown to your visitors') ."\">". _t('ContentController.ARCHIVEDSITEFROM', 'Archived site from') ."<br>" . $dateObj->Nice() . "</div>";
|
||||
@ -393,7 +393,7 @@ class SilverStripeNavigatorItem_ArchiveLink extends SilverStripeNavigatorItem {
|
||||
|
||||
public function canView($member = null) {
|
||||
return (
|
||||
$this->record->hasExtension('Versioned')
|
||||
$this->record->hasExtension('Versioned')
|
||||
&& $this->isArchived()
|
||||
// Don't follow redirects in preview, they break the CMS editing form
|
||||
&& !($this->record instanceof RedirectorPage)
|
||||
|
@ -3,7 +3,7 @@
|
||||
/**
|
||||
* Used to edit the SiteTree->URLSegment property, and suggest input based on the serverside rules
|
||||
* defined through {@link SiteTree->generateURLSegment()} and {@link URLSegmentFilter}.
|
||||
*
|
||||
*
|
||||
* Note: The actual conversion for saving the value takes place in the model layer.
|
||||
*
|
||||
* @package cms
|
||||
@ -12,8 +12,8 @@
|
||||
|
||||
class SiteTreeURLSegmentField extends TextField {
|
||||
|
||||
/**
|
||||
* @var string
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $helpText, $urlPrefix, $urlSuffix, $defaultUrl;
|
||||
|
||||
|
@ -41,7 +41,7 @@ class RedirectorPage extends Page {
|
||||
* Return the the link that should be used for this redirector page, in navigation, etc.
|
||||
* If the redirectorpage has been appropriately configured, then it will return the redirection
|
||||
* destination, to prevent unnecessary 30x redirections. However, if it's misconfigured, then
|
||||
* it will return a link to itself, which will then display an error message.
|
||||
* it will return a link to itself, which will then display an error message.
|
||||
*/
|
||||
public function Link() {
|
||||
if($link = $this->redirectionLink()) return $link;
|
||||
@ -108,8 +108,8 @@ class RedirectorPage extends Page {
|
||||
|
||||
// Prefix the URL with "http://" if no prefix is found
|
||||
if(
|
||||
$this->ExternalURL
|
||||
&& !parse_url($this->ExternalURL, PHP_URL_SCHEME)
|
||||
$this->ExternalURL
|
||||
&& !parse_url($this->ExternalURL, PHP_URL_SCHEME)
|
||||
&& !preg_match('#^//#', $this->ExternalURL)
|
||||
) {
|
||||
$this->ExternalURL = 'http://' . $this->ExternalURL;
|
||||
@ -129,17 +129,17 @@ class RedirectorPage extends Page {
|
||||
array(
|
||||
new HeaderField('RedirectorDescHeader',_t('RedirectorPage.HEADER', "This page will redirect users to another page")),
|
||||
new OptionsetField(
|
||||
"RedirectionType",
|
||||
_t('RedirectorPage.REDIRECTTO', "Redirect to"),
|
||||
"RedirectionType",
|
||||
_t('RedirectorPage.REDIRECTTO', "Redirect to"),
|
||||
array(
|
||||
"Internal" => _t('RedirectorPage.REDIRECTTOPAGE', "A page on your website"),
|
||||
"External" => _t('RedirectorPage.REDIRECTTOEXTERNAL', "Another website"),
|
||||
),
|
||||
),
|
||||
"Internal"
|
||||
),
|
||||
new TreeDropdownField(
|
||||
"LinkToID",
|
||||
_t('RedirectorPage.YOURPAGE', "Page on your website"),
|
||||
"LinkToID",
|
||||
_t('RedirectorPage.YOURPAGE', "Page on your website"),
|
||||
"SiteTree"
|
||||
),
|
||||
new TextField("ExternalURL", _t('RedirectorPage.OTHERURL', "Other website URL"))
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Basic data-object representing all pages within the site tree. All page types that live within the hierarchy should
|
||||
* inherit from this. In addition, it contains a number of static methods for querying the site tree and working with
|
||||
* draft and published states.
|
||||
*
|
||||
*
|
||||
* <h2>URLs</h2>
|
||||
* A page is identified during request handling via its "URLSegment" database column. As pages can be nested, the full
|
||||
* path of a URL might contain multiple segments. Each segment is stored in its filtered representation (through
|
||||
@ -44,7 +44,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
* class is allowed - no subclasses. Otherwise, the class and all its
|
||||
* subclasses are allowed.
|
||||
* To control allowed children on root level (no parent), use {@link $can_be_root}.
|
||||
*
|
||||
*
|
||||
* Note that this setting is cached when used in the CMS, use the "flush" query parameter to clear it.
|
||||
*
|
||||
* @config
|
||||
@ -168,7 +168,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* Icon to use in the CMS page tree. This should be the full filename, relative to the webroot.
|
||||
* Also supports custom CSS rule contents (applied to the correct selector for the tree UI implementation).
|
||||
*
|
||||
*
|
||||
* @see CMSMain::generateTreeStylingCSS()
|
||||
* @config
|
||||
* @var string
|
||||
@ -240,7 +240,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
* Determines if the system should avoid orphaned pages
|
||||
* by deleting all children when the their parent is deleted (TRUE),
|
||||
* or rather preserve this data even if its not reachable through any navigation path (FALSE).
|
||||
*
|
||||
*
|
||||
* @deprecated 4.0 Use the "SiteTree.enforce_strict_hierarchy" config setting instead
|
||||
* @param boolean
|
||||
*/
|
||||
@ -364,7 +364,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
// Traverse down the remaining URL segments and grab the relevant SiteTree objects.
|
||||
foreach($parts as $segment) {
|
||||
$next = DataObject::get_one('SiteTree', array(
|
||||
'"SiteTree"."URLSegment"' => $segment,
|
||||
'"SiteTree"."URLSegment"' => $segment,
|
||||
'"SiteTree"."ParentID"' => $sitetree->ID
|
||||
),
|
||||
$cache
|
||||
@ -483,7 +483,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* Base link used for previewing. Defaults to absolute URL, in order to account for domain changes, e.g. on multi
|
||||
* site setups. Does not contain hints about the stage, see {@link SilverStripeNavigator} for details.
|
||||
*
|
||||
*
|
||||
* @param string $action See {@link Link()}
|
||||
* @return string
|
||||
*/
|
||||
@ -503,7 +503,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
* and returned in its full form.
|
||||
*
|
||||
* @uses RootURLController::get_homepage_link()
|
||||
*
|
||||
*
|
||||
* @param string $action See {@link Link()}
|
||||
* @return string
|
||||
*/
|
||||
@ -517,7 +517,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
$base = $parent->RelativeLink($this->URLSegment);
|
||||
} elseif(!$action && $this->URLSegment == RootURLController::get_homepage_link()) {
|
||||
// Unset base for root-level homepages.
|
||||
// Note: Homepages with action parameters (or $action === true)
|
||||
// Note: Homepages with action parameters (or $action === true)
|
||||
// need to retain their URLSegment.
|
||||
$base = null;
|
||||
} else {
|
||||
@ -600,7 +600,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
* Check if the parent of this page has been removed (or made otherwise unavailable), and is still referenced by
|
||||
* this child. Any such orphaned page may still require access via the CMS, but should not be shown as accessible
|
||||
* to external users.
|
||||
*
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isOrphaned() {
|
||||
@ -752,11 +752,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
$pages = array();
|
||||
|
||||
while(
|
||||
$page
|
||||
&& (!$maxDepth || count($pages) < $maxDepth)
|
||||
$page
|
||||
&& (!$maxDepth || count($pages) < $maxDepth)
|
||||
&& (!$stopAtPageType || $page->ClassName != $stopAtPageType)
|
||||
) {
|
||||
if($showHidden || $page->ShowInMenus || ($page->ID == $this->ID)) {
|
||||
if($showHidden || $page->ShowInMenus || ($page->ID == $this->ID)) {
|
||||
$pages[] = $page;
|
||||
}
|
||||
|
||||
@ -769,7 +769,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
|
||||
/**
|
||||
* Make this page a child of another page.
|
||||
*
|
||||
*
|
||||
* If the parent page does not exist, resolve it to a valid ID before updating this page's reference.
|
||||
*
|
||||
* @param SiteTree|int $item Either the parent object, or the parent ID
|
||||
@ -814,7 +814,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* This function should return true if the current user can execute this action. It can be overloaded to customise
|
||||
* the security model for an application.
|
||||
*
|
||||
*
|
||||
* Slightly altered from parent behaviour in {@link DataObject->can()}:
|
||||
* - Checks for existence of a method named "can<$perm>()" on the object
|
||||
* - Calls decorators and only returns for FALSE "vetoes"
|
||||
@ -848,12 +848,12 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* This function should return true if the current user can add children to this page. It can be overloaded to
|
||||
* customise the security model for an application.
|
||||
*
|
||||
*
|
||||
* Denies permission if any of the following conditions is true:
|
||||
* - alternateCanAddChildren() on a extension returns false
|
||||
* - canEdit() is not granted
|
||||
* - There are no classes defined in {@link $allowed_children}
|
||||
*
|
||||
*
|
||||
* @uses SiteTreeExtension->canAddChildren()
|
||||
* @uses canEdit()
|
||||
* @uses $allowed_children
|
||||
@ -883,7 +883,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* This function should return true if the current user can view this page. It can be overloaded to customise the
|
||||
* security model for an application.
|
||||
*
|
||||
*
|
||||
* Denies permission if any of the following conditions is true:
|
||||
* - canView() on any extension returns false
|
||||
* - "CanViewType" directive is set to "Inherit" and any parent page return false for canView()
|
||||
@ -928,8 +928,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
// check for specific groups
|
||||
if($member && is_numeric($member)) $member = DataObject::get_by_id('Member', $member);
|
||||
if(
|
||||
$this->CanViewType == 'OnlyTheseUsers'
|
||||
&& $member
|
||||
$this->CanViewType == 'OnlyTheseUsers'
|
||||
&& $member
|
||||
&& $member->inGroups($this->ViewerGroups())
|
||||
) return true;
|
||||
|
||||
@ -939,12 +939,12 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* This function should return true if the current user can delete this page. It can be overloaded to customise the
|
||||
* security model for an application.
|
||||
*
|
||||
*
|
||||
* Denies permission if any of the following conditions is true:
|
||||
* - canDelete() returns false on any extension
|
||||
* - canEdit() returns false
|
||||
* - any descendant page returns false for canDelete()
|
||||
*
|
||||
*
|
||||
* @uses canDelete()
|
||||
* @uses SiteTreeExtension->canDelete()
|
||||
* @uses canEdit()
|
||||
@ -974,14 +974,14 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
}
|
||||
|
||||
/**
|
||||
* This function should return true if the current user can create new pages of this class, regardless of class. It
|
||||
* This function should return true if the current user can create new pages of this class, regardless of class. It
|
||||
* can be overloaded to customise the security model for an application.
|
||||
*
|
||||
* By default, permission to create at the root level is based on the SiteConfig configuration, and permission to
|
||||
*
|
||||
* By default, permission to create at the root level is based on the SiteConfig configuration, and permission to
|
||||
* create beneath a parent is based on the ability to edit that parent page.
|
||||
*
|
||||
*
|
||||
* Use {@link canAddChildren()} to control behaviour of creating children under this page.
|
||||
*
|
||||
*
|
||||
* @uses $can_create
|
||||
* @uses DataExtension->canCreate()
|
||||
*
|
||||
@ -1024,7 +1024,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* This function should return true if the current user can edit this page. It can be overloaded to customise the
|
||||
* security model for an application.
|
||||
*
|
||||
*
|
||||
* Denies permission if any of the following conditions is true:
|
||||
* - canEdit() on any extension returns false
|
||||
* - canView() return false
|
||||
@ -1032,7 +1032,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
* - "CanEditType" directive is set to "LoggedInUsers" and no user is logged in or doesn't have the
|
||||
* CMS_Access_CMSMAIN permission code
|
||||
* - "CanEditType" directive is set to "OnlyTheseUsers" and user is not in the given groups
|
||||
*
|
||||
*
|
||||
* @uses canView()
|
||||
* @uses EditorGroups()
|
||||
* @uses DataExtension->canEdit()
|
||||
@ -1069,11 +1069,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* This function should return true if the current user can publish this page. It can be overloaded to customise
|
||||
* the security model for an application.
|
||||
*
|
||||
*
|
||||
* Denies permission if any of the following conditions is true:
|
||||
* - canPublish() on any extension returns false
|
||||
* - canEdit() returns false
|
||||
*
|
||||
*
|
||||
* @uses SiteTreeExtension->canPublish()
|
||||
*
|
||||
* @param Member $member
|
||||
@ -1229,7 +1229,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
// Get permissions that are inherited
|
||||
$potentiallyInherited = Versioned::get_by_stage(
|
||||
"SiteTree",
|
||||
$stage,
|
||||
$stage,
|
||||
array("\"$typeField\" = 'Inherit' AND \"SiteTree\".\"ID\" IN ($idPlaceholders)" => $ids)
|
||||
);
|
||||
|
||||
@ -1270,7 +1270,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
// Cache the results
|
||||
if(empty(self::$cache_permissions[$cacheKey])) self::$cache_permissions[$cacheKey] = array();
|
||||
self::$cache_permissions[$cacheKey] = $combinedStageResult + self::$cache_permissions[$cacheKey];
|
||||
|
||||
|
||||
return $combinedStageResult;
|
||||
} else {
|
||||
return array();
|
||||
@ -1402,9 +1402,9 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
if($this->MetaDescription) {
|
||||
$tags .= "<meta name=\"description\" content=\"" . Convert::raw2att($this->MetaDescription) . "\" />\n";
|
||||
}
|
||||
if($this->ExtraMeta) {
|
||||
if($this->ExtraMeta) {
|
||||
$tags .= $this->ExtraMeta . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
if(Permission::check('CMS_ACCESS_CMSMain')
|
||||
&& in_array('CMSPreviewable', class_implements($this))
|
||||
@ -1495,7 +1495,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
if(!$this->Sort) {
|
||||
$parentID = ($this->ParentID) ? $this->ParentID : 0;
|
||||
$this->Sort = DB::prepared_query(
|
||||
"SELECT MAX(\"Sort\") + 1 FROM \"SiteTree\" WHERE \"ParentID\" = ?",
|
||||
"SELECT MAX(\"Sort\") + 1 FROM \"SiteTree\" WHERE \"ParentID\" = ?",
|
||||
array($parentID)
|
||||
)->value();
|
||||
}
|
||||
@ -1596,10 +1596,10 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
protected function validate() {
|
||||
$result = parent::validate();
|
||||
|
||||
// Allowed children validation
|
||||
// Allowed children validation
|
||||
$parent = $this->getParent();
|
||||
if($parent && $parent->exists()) {
|
||||
// No need to check for subclasses or instanceof, as allowedChildren() already
|
||||
// No need to check for subclasses or instanceof, as allowedChildren() already
|
||||
// deconstructs any inheritance trees already.
|
||||
$allowed = $parent->allowedChildren();
|
||||
$subject = ($this instanceof VirtualPage && $this->CopyContentFromID) ? $this->CopyContentFrom() : $this;
|
||||
@ -1607,8 +1607,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
|
||||
$result->error(
|
||||
_t(
|
||||
'SiteTree.PageTypeNotAllowed',
|
||||
'Page type "{type}" not allowed as child of this parent page',
|
||||
'SiteTree.PageTypeNotAllowed',
|
||||
'Page type "{type}" not allowed as child of this parent page',
|
||||
array('type' => $subject->i18n_singular_name())
|
||||
),
|
||||
'ALLOWED_CHILDREN'
|
||||
@ -1620,8 +1620,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
if(!$this->stat('can_be_root') && !$this->ParentID) {
|
||||
$result->error(
|
||||
_t(
|
||||
'SiteTree.PageTypNotAllowedOnRoot',
|
||||
'Page type "{type}" is not allowed on the root level',
|
||||
'SiteTree.PageTypNotAllowedOnRoot',
|
||||
'Page type "{type}" is not allowed on the root level',
|
||||
array('type' => $this->i18n_singular_name())
|
||||
),
|
||||
'CAN_BE_ROOT'
|
||||
@ -1661,7 +1661,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
}
|
||||
|
||||
$votes = array_filter(
|
||||
(array)$this->extend('augmentValidURLSegment'),
|
||||
(array)$this->extend('augmentValidURLSegment'),
|
||||
function($v) {return !is_null($v);}
|
||||
);
|
||||
if($votes) {
|
||||
@ -1682,7 +1682,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
* updateURLSegment(&$url, $title). $url will be passed by reference and should be modified. $title will contain
|
||||
* the title that was originally used as the source of this generated URL. This lets extensions either start from
|
||||
* scratch, or incrementally modify the generated URL.
|
||||
*
|
||||
*
|
||||
* @param string $title Page title
|
||||
* @return string Generated url segment
|
||||
*/
|
||||
@ -1761,7 +1761,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
|
||||
/**
|
||||
* Returns the pages that depend on this page. This includes virtual pages, pages that link to it, etc.
|
||||
*
|
||||
*
|
||||
* @param bool $includeVirtuals Set to false to exlcude virtual pages.
|
||||
* @return ArrayList
|
||||
*/
|
||||
@ -1887,7 +1887,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
}
|
||||
|
||||
$statusMessage[] = _t(
|
||||
'SiteTree.APPEARSVIRTUALPAGES',
|
||||
'SiteTree.APPEARSVIRTUALPAGES',
|
||||
"This content also appears on the virtual pages in the {title} sections.",
|
||||
array('title' => $parentList)
|
||||
);
|
||||
@ -1982,7 +1982,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
$metaFieldDesc
|
||||
->setRightTitle(
|
||||
_t(
|
||||
'SiteTree.METADESCHELP',
|
||||
'SiteTree.METADESCHELP',
|
||||
"Search engines use this content for displaying search results (although it will not influence their ranking)."
|
||||
)
|
||||
)
|
||||
@ -1990,7 +1990,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
$metaFieldExtra
|
||||
->setRightTitle(
|
||||
_t(
|
||||
'SiteTree.METAEXTRAHELP',
|
||||
'SiteTree.METAEXTRAHELP',
|
||||
"HTML tags for additional meta information. For example <meta name=\"customName\" content=\"your custom content here\" />"
|
||||
)
|
||||
)
|
||||
@ -2017,8 +2017,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
}
|
||||
|
||||
if(file_exists(BASE_PATH . '/install.php')) {
|
||||
$fields->addFieldToTab("Root.Main", new LiteralField("InstallWarningHeader",
|
||||
"<p class=\"message warning\">" . _t("SiteTree.REMOVE_INSTALL_WARNING",
|
||||
$fields->addFieldToTab("Root.Main", new LiteralField("InstallWarningHeader",
|
||||
"<p class=\"message warning\">" . _t("SiteTree.REMOVE_INSTALL_WARNING",
|
||||
"Warning: You should remove install.php from this SilverStripe install for security reasons.")
|
||||
. "</p>"), "Title");
|
||||
}
|
||||
@ -2040,7 +2040,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* Returns fields related to configuration aspects on this record, e.g. access control. See {@link getCMSFields()}
|
||||
* for content-related fields.
|
||||
*
|
||||
*
|
||||
* @return FieldList
|
||||
*/
|
||||
public function getSettingsFields() {
|
||||
@ -2055,8 +2055,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
$rootTab = new TabSet("Root",
|
||||
$tabBehaviour = new Tab('Settings',
|
||||
new DropdownField(
|
||||
"ClassName",
|
||||
$this->fieldLabel('ClassName'),
|
||||
"ClassName",
|
||||
$this->fieldLabel('ClassName'),
|
||||
$this->getClassDropdown()
|
||||
),
|
||||
$parentTypeSelector = new CompositeField(
|
||||
@ -2071,25 +2071,25 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
new CheckboxField("ShowInSearch", $this->fieldLabel('ShowInSearch'))
|
||||
),
|
||||
$viewersOptionsField = new OptionsetField(
|
||||
"CanViewType",
|
||||
"CanViewType",
|
||||
_t('SiteTree.ACCESSHEADER', "Who can view this page?")
|
||||
),
|
||||
$viewerGroupsField = ListboxField::create("ViewerGroups", _t('SiteTree.VIEWERGROUPS', "Viewer Groups"))
|
||||
->setMultiple(true)
|
||||
->setSource($groupsMap)
|
||||
->setAttribute(
|
||||
'data-placeholder',
|
||||
'data-placeholder',
|
||||
_t('SiteTree.GroupPlaceholder', 'Click to select group')
|
||||
),
|
||||
$editorsOptionsField = new OptionsetField(
|
||||
"CanEditType",
|
||||
"CanEditType",
|
||||
_t('SiteTree.EDITHEADER', "Who can edit this page?")
|
||||
),
|
||||
$editorGroupsField = ListboxField::create("EditorGroups", _t('SiteTree.EDITORGROUPS', "Editor Groups"))
|
||||
->setMultiple(true)
|
||||
->setSource($groupsMap)
|
||||
->setAttribute(
|
||||
'data-placeholder',
|
||||
'data-placeholder',
|
||||
_t('SiteTree.GroupPlaceholder', 'Click to select group')
|
||||
)
|
||||
)
|
||||
@ -2216,7 +2216,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
// Minor options are hidden behind a drop-up and appear as links (although they are still FormActions).
|
||||
$rootTabSet = new TabSet('ActionMenus');
|
||||
$moreOptions = new Tab(
|
||||
'MoreOptions',
|
||||
'MoreOptions',
|
||||
_t('SiteTree.MoreOptions', 'More options', 'Expands a view for more buttons')
|
||||
);
|
||||
$rootTabSet->push($moreOptions);
|
||||
@ -2361,7 +2361,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
|
||||
/**
|
||||
* Publish this page.
|
||||
*
|
||||
*
|
||||
* @uses SiteTreeExtension->onBeforePublish()
|
||||
* @uses SiteTreeExtension->onAfterPublish()
|
||||
* @return bool True if published
|
||||
@ -2411,7 +2411,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
|
||||
/**
|
||||
* Unpublish this page - remove it from the live site
|
||||
*
|
||||
*
|
||||
* @uses SiteTreeExtension->onBeforeUnpublish()
|
||||
* @uses SiteTreeExtension->onAfterUnpublish()
|
||||
*/
|
||||
@ -2573,12 +2573,12 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
if(!$this->canDelete($member)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// If published, check if we can delete from live
|
||||
if($this->ExistsOnLive && !$this->canDeleteFromLive($member)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -2755,11 +2755,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
* status. Each page can have more than one status flag. Returns a map of a unique key to a (localized) title for
|
||||
* the flag. The unique key can be reused as a CSS class. Use the 'updateStatusFlags' extension point to customize
|
||||
* the flags.
|
||||
*
|
||||
* Example (simple):
|
||||
*
|
||||
* Example (simple):
|
||||
* "deletedonlive" => "Deleted"
|
||||
*
|
||||
* Example (with optional title attribute):
|
||||
*
|
||||
* Example (with optional title attribute):
|
||||
* "deletedonlive" => array('text' => "Deleted", 'title' => 'This page has been deleted')
|
||||
*
|
||||
* @param bool $cached Whether to serve the fields from cache; false regenerate them
|
||||
@ -2907,7 +2907,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* Compares current draft with live version, and returns true if no draft version of this page exists but the page
|
||||
* is still published (eg, after triggering "Delete from draft site" in the CMS).
|
||||
*
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsDeletedFromStage() {
|
||||
@ -2932,7 +2932,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* Compares current draft with live version, and returns true if these versions differ, meaning there have been
|
||||
* unpublished changes to the draft site.
|
||||
*
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsModifiedOnStage() {
|
||||
@ -2951,7 +2951,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
/**
|
||||
* Compares current draft with live version, and returns true if no live version exists, meaning the page was never
|
||||
* published.
|
||||
*
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsAddedToStage() {
|
||||
@ -3017,7 +3017,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
||||
|
||||
/**
|
||||
* Return the translated Singular name.
|
||||
*
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function i18n_singular_name() {
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
/**
|
||||
* Plug-ins for additional functionality in your SiteTree classes.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage model
|
||||
*/
|
||||
@ -10,7 +10,7 @@ abstract class SiteTreeExtension extends DataExtension {
|
||||
|
||||
/**
|
||||
* Hook called before the page's {@link SiteTree::doPublish()} action is completed
|
||||
*
|
||||
*
|
||||
* @param SiteTree &$original The current Live SiteTree record prior to publish
|
||||
*/
|
||||
public function onBeforePublish(&$original) {
|
||||
@ -18,7 +18,7 @@ abstract class SiteTreeExtension extends DataExtension {
|
||||
|
||||
/**
|
||||
* Hook called after the page's {@link SiteTree::doPublish()} action is completed
|
||||
*
|
||||
*
|
||||
* @param SiteTree &$original The current Live SiteTree record prior to publish
|
||||
*/
|
||||
public function onAfterPublish(&$original) {
|
||||
@ -39,9 +39,9 @@ abstract class SiteTreeExtension extends DataExtension {
|
||||
|
||||
/**
|
||||
* Hook called to determine if a user may add children to this SiteTree object
|
||||
*
|
||||
*
|
||||
* @see SiteTree::canAddChildren()
|
||||
*
|
||||
*
|
||||
* @param Member $member The member to check permission against, or the currently
|
||||
* logged in user
|
||||
* @return boolean|null Return false to deny rights, or null to yield to default
|
||||
@ -51,9 +51,9 @@ abstract class SiteTreeExtension extends DataExtension {
|
||||
|
||||
/**
|
||||
* Hook called to determine if a user may publish this SiteTree object
|
||||
*
|
||||
*
|
||||
* @see SiteTree::canPublish()
|
||||
*
|
||||
*
|
||||
* @param Member $member The member to check permission against, or the currently
|
||||
* logged in user
|
||||
* @return boolean|null Return false to deny rights, or null to yield to default
|
||||
@ -65,7 +65,7 @@ abstract class SiteTreeExtension extends DataExtension {
|
||||
* Hook called to modify the $base url of this page, with a given $action,
|
||||
* before {@link SiteTree::RelativeLink()} calls {@link Controller::join_links()}
|
||||
* on the $base and $action
|
||||
*
|
||||
*
|
||||
* @param string &$base The URL of this page relative to siteroot, not including
|
||||
* the action
|
||||
* @param string|boolean &$action The action or subpage called on this page.
|
||||
|
@ -12,8 +12,8 @@ class SiteTreeFileExtension extends DataExtension {
|
||||
public function updateCMSFields(FieldList $fields) {
|
||||
$fields->insertAfter(
|
||||
ReadonlyField::create(
|
||||
'BackLinkCount',
|
||||
_t('AssetTableField.BACKLINKCOUNT', 'Used on:'),
|
||||
'BackLinkCount',
|
||||
_t('AssetTableField.BACKLINKCOUNT', 'Used on:'),
|
||||
$this->BackLinkTracking()->Count() . ' ' . _t('AssetTableField.PAGES', 'page(s)'))
|
||||
->addExtraClass('cms-description-toggle')
|
||||
->setDescription($this->BackLinkHTMLList()),
|
||||
@ -67,8 +67,8 @@ class SiteTreeFileExtension extends DataExtension {
|
||||
}
|
||||
|
||||
if($filter || $sort || $join || $limit) {
|
||||
Deprecation::notice('4.0', 'The $filter, $sort, $join and $limit parameters for
|
||||
SiteTreeFileExtension::BackLinkTracking() have been deprecated.
|
||||
Deprecation::notice('4.0', 'The $filter, $sort, $join and $limit parameters for
|
||||
SiteTreeFileExtension::BackLinkTracking() have been deprecated.
|
||||
Please manipluate the returned list directly.', Deprecation::SCOPE_GLOBAL);
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ class SiteTreeFileExtension extends DataExtension {
|
||||
|
||||
/**
|
||||
* @todo Unnecessary shortcut for AssetTableField, coupled with cms module.
|
||||
*
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function BackLinkTrackingCount() {
|
||||
@ -130,9 +130,9 @@ class SiteTreeFileExtension extends DataExtension {
|
||||
|
||||
/**
|
||||
* Rewrite links to the $old file to now point to the $new file.
|
||||
*
|
||||
*
|
||||
* @uses SiteTree->rewriteFileURL()
|
||||
*
|
||||
*
|
||||
* @param string $old File path relative to the webroot
|
||||
* @param string $new File path relative to the webroot
|
||||
*/
|
||||
|
@ -10,7 +10,7 @@ class SiteTreeFolderExtension extends DataExtension {
|
||||
|
||||
/**
|
||||
* Looks for files used in system and create where clause which contains all ID's of files.
|
||||
*
|
||||
*
|
||||
* @returns String where clause which will work as filter.
|
||||
*/
|
||||
public function getUnusedFilesListFilter() {
|
||||
@ -21,7 +21,7 @@ class SiteTreeFolderExtension extends DataExtension {
|
||||
|
||||
if($result->numRecords() > 0) {
|
||||
while($nextResult = $result->next()) {
|
||||
$where .= $nextResult['FileID'] . ',';
|
||||
$where .= $nextResult['FileID'] . ',';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/**
|
||||
* Virtual Page creates an instance of a page, with the same fields that the original page had, but readonly.
|
||||
* This allows you can have a page in mulitple places in the site structure, with different children without duplicating the content
|
||||
* Note: This Only duplicates $db fields and not the $has_one etc..
|
||||
* Note: This Only duplicates $db fields and not the $has_one etc..
|
||||
* @package cms
|
||||
*/
|
||||
class VirtualPage extends Page {
|
||||
@ -46,7 +46,7 @@ class VirtualPage extends Page {
|
||||
"VersionID" => "Int",
|
||||
);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Generates the array of fields required for the page type.
|
||||
*/
|
||||
public function getVirtualFields() {
|
||||
@ -71,7 +71,7 @@ class VirtualPage extends Page {
|
||||
if(!$copyContentFromID) return new SiteTree();
|
||||
|
||||
if(!isset($this->components['CopyContentFrom'])) {
|
||||
$this->components['CopyContentFrom'] = DataObject::get_by_id("SiteTree",
|
||||
$this->components['CopyContentFrom'] = DataObject::get_by_id("SiteTree",
|
||||
$copyContentFromID);
|
||||
|
||||
// Don't let VirtualPages point to other VirtualPages
|
||||
@ -91,7 +91,7 @@ class VirtualPage extends Page {
|
||||
if($val && DataObject::get_by_id('SiteTree', $val) instanceof VirtualPage) $val = 0;
|
||||
return $this->setField("CopyContentFromID", $val);
|
||||
}
|
||||
|
||||
|
||||
public function ContentSource() {
|
||||
return $this->CopyContentFrom();
|
||||
}
|
||||
@ -143,7 +143,7 @@ class VirtualPage extends Page {
|
||||
/**
|
||||
* Returns true if is page is publishable by anyone at all
|
||||
* Return false if the source page isn't published yet.
|
||||
*
|
||||
*
|
||||
* Note that isPublishable doesn't affect ete from live, only publish.
|
||||
*/
|
||||
public function isPublishable() {
|
||||
@ -169,8 +169,8 @@ class VirtualPage extends Page {
|
||||
|
||||
// Setup the linking to the original page.
|
||||
$copyContentFromField = new TreeDropdownField(
|
||||
"CopyContentFromID",
|
||||
_t('VirtualPage.CHOOSE', "Linked Page"),
|
||||
"CopyContentFromID",
|
||||
_t('VirtualPage.CHOOSE', "Linked Page"),
|
||||
"SiteTree"
|
||||
);
|
||||
// filter doesn't let you select children of virtual pages as as source page
|
||||
@ -191,11 +191,11 @@ class VirtualPage extends Page {
|
||||
|
||||
// Create links back to the original object in the CMS
|
||||
if($this->CopyContentFrom()->exists()) {
|
||||
$link = "<a class=\"cmsEditlink\" href=\"admin/pages/edit/show/$this->CopyContentFromID\">"
|
||||
$link = "<a class=\"cmsEditlink\" href=\"admin/pages/edit/show/$this->CopyContentFromID\">"
|
||||
. _t('VirtualPage.EditLink', 'edit')
|
||||
. "</a>";
|
||||
$msgs[] = _t(
|
||||
'VirtualPage.HEADERWITHLINK',
|
||||
'VirtualPage.HEADERWITHLINK',
|
||||
"This is a virtual page copying content from \"{title}\" ({link})",
|
||||
array(
|
||||
'title' => $this->CopyContentFrom()->obj('Title'),
|
||||
@ -210,7 +210,7 @@ class VirtualPage extends Page {
|
||||
);
|
||||
}
|
||||
if(
|
||||
$this->CopyContentFromID
|
||||
$this->CopyContentFromID
|
||||
&& !Versioned::get_versionnumber_by_stage('SiteTree', 'Live', $this->CopyContentFromID)
|
||||
) {
|
||||
$msgs[] = _t(
|
||||
@ -219,7 +219,7 @@ class VirtualPage extends Page {
|
||||
);
|
||||
}
|
||||
|
||||
$fields->addFieldToTab("Root.Main",
|
||||
$fields->addFieldToTab("Root.Main",
|
||||
new LiteralField(
|
||||
'VirtualPageMessage',
|
||||
'<div class="message notice">' . implode('. ', $msgs) . '.</div>'
|
||||
@ -233,7 +233,7 @@ class VirtualPage extends Page {
|
||||
public function getSettingsFields() {
|
||||
$fields = parent::getSettingsFields();
|
||||
if(!$this->CopyContentFrom()->exists()) {
|
||||
$fields->addFieldToTab("Root.Settings",
|
||||
$fields->addFieldToTab("Root.Settings",
|
||||
new LiteralField(
|
||||
'VirtualPageWarning',
|
||||
'<div class="message notice">'
|
||||
@ -250,7 +250,7 @@ class VirtualPage extends Page {
|
||||
return $fields;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* We have to change it to copy all the content from the original page first.
|
||||
*/
|
||||
public function onBeforeWrite() {
|
||||
@ -303,7 +303,7 @@ class VirtualPage extends Page {
|
||||
if(!$this->extension_instances['Versioned']->migratingVersion) {
|
||||
if(
|
||||
$this->isChanged('CopyContentFromID')
|
||||
&& $this->CopyContentFromID != 0
|
||||
&& $this->CopyContentFromID != 0
|
||||
&& $this instanceof VirtualPage
|
||||
) {
|
||||
$this->updateImageTracking();
|
||||
@ -352,8 +352,8 @@ class VirtualPage extends Page {
|
||||
if(!$orig->stat('can_be_root') && !$this->ParentID) {
|
||||
$result->error(
|
||||
_t(
|
||||
'VirtualPage.PageTypNotAllowedOnRoot',
|
||||
'Original page type "{type}" is not allowed on the root level for this virtual page',
|
||||
'VirtualPage.PageTypNotAllowedOnRoot',
|
||||
'Original page type "{type}" is not allowed on the root level for this virtual page',
|
||||
array('type' => $orig->i18n_singular_name())
|
||||
),
|
||||
'CAN_BE_ROOT_VIRTUAL'
|
||||
@ -407,7 +407,7 @@ class VirtualPage extends Page {
|
||||
* Allow attributes on the master page to pass
|
||||
* through to the virtual page
|
||||
*
|
||||
* @param string $field
|
||||
* @param string $field
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($field) {
|
||||
@ -423,7 +423,7 @@ class VirtualPage extends Page {
|
||||
/**
|
||||
* Pass unrecognized method calls on to the original data object
|
||||
*
|
||||
* @param string $method
|
||||
* @param string $method
|
||||
* @param string $args
|
||||
* @return mixed
|
||||
*/
|
||||
@ -441,8 +441,8 @@ class VirtualPage extends Page {
|
||||
*/
|
||||
public function hasField($field) {
|
||||
return (
|
||||
array_key_exists($field, $this->record)
|
||||
|| $this->hasDatabaseField($field)
|
||||
array_key_exists($field, $this->record)
|
||||
|| $this->hasDatabaseField($field)
|
||||
|| array_key_exists($field, $this->db()) // Needed for composite fields
|
||||
|| parent::hasMethod("get{$field}")
|
||||
|| $this->CopyContentFrom()->hasField($field)
|
||||
@ -451,8 +451,8 @@ class VirtualPage extends Page {
|
||||
/**
|
||||
* Overwrite to also check for method on the original data object
|
||||
*
|
||||
* @param string $method
|
||||
* @return bool
|
||||
* @param string $method
|
||||
* @return bool
|
||||
*/
|
||||
public function hasMethod($method) {
|
||||
if(parent::hasMethod($method)) return true;
|
||||
@ -533,8 +533,8 @@ class VirtualPage_Controller extends Page_Controller {
|
||||
/**
|
||||
* Also check the original object's original controller for the method
|
||||
*
|
||||
* @param string $method
|
||||
* @return bool
|
||||
* @param string $method
|
||||
* @return bool
|
||||
*/
|
||||
public function hasMethod($method) {
|
||||
$haveIt = parent::hasMethod($method);
|
||||
@ -551,7 +551,7 @@ class VirtualPage_Controller extends Page_Controller {
|
||||
/**
|
||||
* Pass unrecognized method calls on to the original controller
|
||||
*
|
||||
* @param string $method
|
||||
* @param string $method
|
||||
* @param string $args
|
||||
* @return mixed
|
||||
*
|
||||
|
@ -128,8 +128,8 @@ class BrokenLinksReport extends SS_Report {
|
||||
'Draft' => _t('BrokenLinksReport.CheckSiteDropdownDraft', 'Draft Site')
|
||||
)),
|
||||
new DropdownField(
|
||||
'Reason',
|
||||
_t('BrokenLinksReport.ReasonDropdown', 'Problem to check'),
|
||||
'Reason',
|
||||
_t('BrokenLinksReport.ReasonDropdown', 'Problem to check'),
|
||||
array(
|
||||
'' => _t('BrokenLinksReport.Any', 'Any'),
|
||||
'BROKENFILE' => _t('BrokenLinksReport.ReasonDropdownBROKENFILE', 'Broken file'),
|
||||
|
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* Standard basic search form which conducts a fulltext search on all {@link SiteTree}
|
||||
* objects.
|
||||
* objects.
|
||||
*
|
||||
* If multilingual content is enabled through the {@link Translatable} extension,
|
||||
* only pages the currently set language on the holder for this searchform are found.
|
||||
* The language is set through a hidden field in the form, which is prepoluated
|
||||
* with {@link Translatable::get_current_locale()} when then form is constructed.
|
||||
*
|
||||
*
|
||||
* @see Use ModelController and SearchContext for a more generic search implementation based around DataObject
|
||||
* @package cms
|
||||
* @subpackage search
|
||||
@ -32,7 +32,7 @@ class SearchForm extends Form {
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param Controller $controller
|
||||
* @param string $name The name of the form (used in URL addressing)
|
||||
* @param FieldList $fields Optional, defaults to a single field named "Search". Search logic needs to be customized
|
||||
@ -66,7 +66,7 @@ class SearchForm extends Form {
|
||||
|
||||
/**
|
||||
* Return a rendered version of this form.
|
||||
*
|
||||
*
|
||||
* This is returned when you access a form as $FormObject rather
|
||||
* than <% with FormObject %>
|
||||
*/
|
||||
@ -84,7 +84,7 @@ class SearchForm extends Form {
|
||||
|
||||
/**
|
||||
* Set the classes to search.
|
||||
* Currently you can only choose from "SiteTree" and "File", but a future version might improve this.
|
||||
* Currently you can only choose from "SiteTree" and "File", but a future version might improve this.
|
||||
*/
|
||||
public function classesToSearch($classes) {
|
||||
$illegalClasses = array_diff($classes, array('SiteTree', 'File'));
|
||||
@ -101,13 +101,13 @@ class SearchForm extends Form {
|
||||
* @return array
|
||||
*/
|
||||
public function getClassesToSearch() {
|
||||
return $this->classesToSearch;
|
||||
return $this->classesToSearch;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return dataObjectSet of the results using $_REQUEST to get info from form.
|
||||
* Wraps around {@link searchEngine()}.
|
||||
*
|
||||
*
|
||||
* @param int $pageLength DEPRECATED 2.3 Use SearchForm->pageLength
|
||||
* @param array $data Request data as an associative array. Should contain at least a key 'Search' with all searched keywords.
|
||||
* @return SS_List
|
||||
@ -193,7 +193,7 @@ class SearchForm extends Form {
|
||||
|
||||
/**
|
||||
* Get the search query for display in a "You searched for ..." sentence.
|
||||
*
|
||||
*
|
||||
* @param array $data
|
||||
* @return string
|
||||
*/
|
||||
@ -207,7 +207,7 @@ class SearchForm extends Form {
|
||||
|
||||
/**
|
||||
* Set the maximum number of records shown on each page.
|
||||
*
|
||||
*
|
||||
* @param int $length
|
||||
*/
|
||||
public function setPageLength($length) {
|
||||
|
@ -4,7 +4,7 @@
|
||||
#right form #deletemarked .middleColumn {
|
||||
background: none;
|
||||
}
|
||||
.dragfile,
|
||||
.dragfile,
|
||||
.dragfile img {
|
||||
float: left;
|
||||
cursor: move;
|
||||
@ -38,4 +38,4 @@ form#Form_AddForm .field span.readonly {
|
||||
/* Same as .checkboxAboveTree */
|
||||
border-top: 1px solid #CCCCCC;
|
||||
padding: .5em;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,3 @@
|
||||
div#SideReportsHolder {
|
||||
clear: left;
|
||||
}
|
||||
}
|
||||
|
@ -41,4 +41,4 @@ included in the template due to a bug since 29/09/08 (r63175), and we can't find
|
||||
font-size: 80%;
|
||||
font-style: italic;
|
||||
}
|
||||
*/
|
||||
*/
|
||||
|
@ -25,7 +25,7 @@
|
||||
},
|
||||
/**
|
||||
* Function: drop
|
||||
*
|
||||
*
|
||||
* Take selected files and move them to a folder target in the tree.
|
||||
*/
|
||||
drop: function(e, ui) {
|
||||
@ -44,10 +44,10 @@
|
||||
|
||||
/**
|
||||
* Function: getSelected
|
||||
*
|
||||
*
|
||||
* Get the IDs of all selected files in the table.
|
||||
* Used for drag'n'drop.
|
||||
*
|
||||
*
|
||||
* Returns:
|
||||
* Array
|
||||
*/
|
||||
@ -69,8 +69,8 @@
|
||||
appendTo: 'body',
|
||||
helper: function() {
|
||||
return $(
|
||||
'<div class="NumFilesIndicator">' +
|
||||
ss.i18n.sprintf(ss.i18n._t('AssetTableField.MOVING'),container.getSelected().length) +
|
||||
'<div class="NumFilesIndicator">'
|
||||
ss.i18n.sprintf(ss.i18n._t('AssetTableField.MOVING'),container.getSelected().length)
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
@ -83,10 +83,10 @@
|
||||
},
|
||||
/**
|
||||
* Function: onmousedown
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*
|
||||
*
|
||||
* Automatically select the checkbox in the same table row
|
||||
* to signify that this element is moved, and hint that
|
||||
* all checkboxed elements will be moved along with it.
|
||||
|
@ -11,7 +11,7 @@
|
||||
$(document).ready(function() {
|
||||
$('#Form_BatchActionsForm').entwine('.ss.tree').register(
|
||||
// TODO Hardcoding of base URL
|
||||
'admin/assets/batchactions/delete',
|
||||
'admin/assets/batchactions/delete',
|
||||
function(ids) {
|
||||
var confirmed = confirm(
|
||||
ss.i18n.sprintf(
|
||||
@ -55,7 +55,7 @@
|
||||
msg = ss.i18n._t('AssetAdmin.ConfirmDelete');
|
||||
} else {
|
||||
msg = ss.i18n._t('TABLEFIELD.DELETECONFIRMMESSAGE');
|
||||
}
|
||||
}
|
||||
if(!confirm(msg)) return false;
|
||||
|
||||
this.getGridField().reload({data: [{name: this.attr('name'), value: this.val()}]});
|
||||
@ -94,7 +94,7 @@
|
||||
|
||||
/**
|
||||
* Function: onsubmit
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
|
@ -44,7 +44,7 @@
|
||||
* Similar implementation to LeftAndMain.Tree.js.
|
||||
*/
|
||||
updateTypeList: function() {
|
||||
var hints = this.data('hints'),
|
||||
var hints = this.data('hints'),
|
||||
parentTree = this.find('#Form_AddForm_ParentID_Holder .TreeDropdownField'),
|
||||
parentMode = this.find("input[name=ParentModeField]:checked").val(),
|
||||
metadata = parentTree.data('metadata'),
|
||||
@ -101,7 +101,7 @@
|
||||
},
|
||||
/**
|
||||
* Update the selection filter with the given blacklist and default selection
|
||||
*
|
||||
*
|
||||
* @param array disallowedChildren
|
||||
* @param string defaultChildClass
|
||||
*/
|
||||
@ -109,7 +109,7 @@
|
||||
// Limit selection
|
||||
var allAllowed = null; // troolian
|
||||
this.find('#Form_AddForm_PageType li').each(function() {
|
||||
var className = $(this).find('input').val(),
|
||||
var className = $(this).find('input').val(),
|
||||
isAllowed = ($.inArray(className, disallowedChildren) === -1);
|
||||
|
||||
$(this).setEnabled(isAllowed);
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
/**
|
||||
* Class: .cms-edit-form input[name=Title]
|
||||
*
|
||||
*
|
||||
* Input validation on the Title field
|
||||
*/
|
||||
$('.cms-edit-form input[name=Title]').entwine({
|
||||
@ -61,7 +61,7 @@
|
||||
|
||||
/**
|
||||
* Function: updateRelatedFields
|
||||
*
|
||||
*
|
||||
* Update the related fields if appropriate
|
||||
* (String) title The new title
|
||||
* (Stirng) origTitle The original title
|
||||
@ -80,7 +80,7 @@
|
||||
|
||||
/**
|
||||
* Function: updateURLSegment
|
||||
*
|
||||
*
|
||||
* Update the URLSegment
|
||||
* (String) title
|
||||
*/
|
||||
@ -96,7 +96,7 @@
|
||||
|
||||
/**
|
||||
* Function: updateBreadcrumbLabel
|
||||
*
|
||||
*
|
||||
* Update the breadcrumb
|
||||
* (String) title
|
||||
*/
|
||||
@ -110,9 +110,9 @@
|
||||
|
||||
/**
|
||||
* Function: _addActions
|
||||
*
|
||||
*
|
||||
* Utility to add update from title action
|
||||
*
|
||||
*
|
||||
*/
|
||||
_addActions: function() {
|
||||
var self = this;
|
||||
@ -137,7 +137,7 @@
|
||||
|
||||
/**
|
||||
* Class: .cms-edit-form .parentTypeSelector
|
||||
*
|
||||
*
|
||||
* ParentID field combination - mostly toggling between
|
||||
* the two radiobuttons and setting the hidden "ParentID" field
|
||||
*/
|
||||
@ -159,7 +159,7 @@
|
||||
|
||||
/**
|
||||
* Function: _toggleSelection
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
@ -175,7 +175,7 @@
|
||||
|
||||
/**
|
||||
* Function: _changeParentId
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
@ -188,7 +188,7 @@
|
||||
|
||||
/**
|
||||
* Class: .cms-edit-form #CanViewType, .cms-edit-form #CanEditType
|
||||
*
|
||||
*
|
||||
* Toggle display of group dropdown in "access" tab,
|
||||
* based on selection of radiobuttons.
|
||||
*/
|
||||
@ -226,20 +226,20 @@
|
||||
|
||||
/**
|
||||
* Class: .cms-edit-form .Actions #Form_EditForm_action_print
|
||||
*
|
||||
*
|
||||
* Open a printable representation of the form in a new window.
|
||||
* Used for readonly older versions of a specific page.
|
||||
*/
|
||||
$('.cms-edit-form .Actions #Form_EditForm_action_print').entwine({
|
||||
/**
|
||||
* Function: onclick
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
onclick: function(e) {
|
||||
var printURL = $(this[0].form).attr('action').replace(/\?.*$/,'')
|
||||
+ '/printable/'
|
||||
var printURL = $(this[0].form).attr('action').replace(/\?.*$/,'')
|
||||
+ '/printable/'
|
||||
+ $(':input[name=ID]',this[0].form).val();
|
||||
if(printURL.substr(0,7) != 'http://') printURL = $('base').attr('href') + printURL;
|
||||
|
||||
@ -251,14 +251,14 @@
|
||||
|
||||
/**
|
||||
* Class: .cms-edit-form .Actions #Form_EditForm_action_rollback
|
||||
*
|
||||
*
|
||||
* A "rollback" to a specific version needs user confirmation.
|
||||
*/
|
||||
$('.cms-edit-form .Actions #Form_EditForm_action_rollback').entwine({
|
||||
|
||||
/**
|
||||
* Function: onclick
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
@ -266,7 +266,7 @@
|
||||
var form = this.parents('form:first'), version = form.find(':input[name=Version]').val(), message = '';
|
||||
if(version) {
|
||||
message = ss.i18n.sprintf(
|
||||
ss.i18n._t('CMSMain.RollbackToVersion'),
|
||||
ss.i18n._t('CMSMain.RollbackToVersion'),
|
||||
version
|
||||
);
|
||||
} else {
|
||||
@ -282,21 +282,21 @@
|
||||
|
||||
/**
|
||||
* Class: .cms-edit-form .Actions #Form_EditForm_action_archive
|
||||
*
|
||||
*
|
||||
* Informing the user about the archive action while requiring confirmation
|
||||
*/
|
||||
$('.cms-edit-form .Actions #Form_EditForm_action_archive').entwine({
|
||||
|
||||
/**
|
||||
* Function: onclick
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
onclick: function(e) {
|
||||
var form = this.parents('form:first'), version = form.find(':input[name=Version]').val(), message = '';
|
||||
message = ss.i18n.sprintf(
|
||||
ss.i18n._t('CMSMain.Archive'),
|
||||
ss.i18n._t('CMSMain.Archive'),
|
||||
version
|
||||
);
|
||||
if(confirm(message)) {
|
||||
@ -309,14 +309,14 @@
|
||||
|
||||
/**
|
||||
* Class: .cms-edit-form .Actions #Form_EditForm_action_restore
|
||||
*
|
||||
*
|
||||
* Informing the user about the archive action while requiring confirmation
|
||||
*/
|
||||
$('.cms-edit-form .Actions #Form_EditForm_action_restore').entwine({
|
||||
|
||||
/**
|
||||
* Function: onclick
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
@ -326,7 +326,7 @@
|
||||
message = '',
|
||||
toRoot = this.data('toRoot');
|
||||
message = ss.i18n.sprintf(
|
||||
ss.i18n._t(toRoot ? 'CMSMain.RestoreToRoot' : 'CMSMain.Restore'),
|
||||
ss.i18n._t(toRoot ? 'CMSMain.RestoreToRoot' : 'CMSMain.Restore'),
|
||||
version
|
||||
);
|
||||
if(confirm(message)) {
|
||||
@ -339,21 +339,21 @@
|
||||
|
||||
/**
|
||||
* Class: .cms-edit-form .Actions #Form_EditForm_action_delete
|
||||
*
|
||||
*
|
||||
* Informing the user about the delete from draft action while requiring confirmation
|
||||
*/
|
||||
$('.cms-edit-form .Actions #Form_EditForm_action_delete').entwine({
|
||||
|
||||
/**
|
||||
* Function: onclick
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
onclick: function(e) {
|
||||
var form = this.parents('form:first'), version = form.find(':input[name=Version]').val(), message = '';
|
||||
message = ss.i18n.sprintf(
|
||||
ss.i18n._t('CMSMain.DeleteFromDraft'),
|
||||
ss.i18n._t('CMSMain.DeleteFromDraft'),
|
||||
version
|
||||
);
|
||||
if(confirm(message)) {
|
||||
@ -372,14 +372,14 @@
|
||||
|
||||
/**
|
||||
* Function: onclick
|
||||
*
|
||||
*
|
||||
* Parameters:
|
||||
* (Event) e
|
||||
*/
|
||||
onclick: function(e) {
|
||||
var form = this.parents('form:first'), version = form.find(':input[name=Version]').val(), message = '';
|
||||
message = ss.i18n.sprintf(
|
||||
ss.i18n._t('CMSMain.Unpublish'),
|
||||
ss.i18n._t('CMSMain.Unpublish'),
|
||||
version
|
||||
);
|
||||
if(confirm(message)) {
|
||||
|
@ -1,8 +1,8 @@
|
||||
(function($) {
|
||||
/**
|
||||
* File: CMSPageHistoryController.js
|
||||
*
|
||||
* Handles related interactions between the version selection form on the
|
||||
*
|
||||
* Handles related interactions between the version selection form on the
|
||||
* left hand side of the panel and the version displaying on the right
|
||||
* hand side.
|
||||
*/
|
||||
@ -32,7 +32,7 @@
|
||||
* display based on whether we have two or 1 option selected
|
||||
*
|
||||
* Todo:
|
||||
* Handle coupling to admin url
|
||||
* Handle coupling to admin url
|
||||
*/
|
||||
onsubmit: function(e, d) {
|
||||
e.preventDefault();
|
||||
@ -116,7 +116,7 @@
|
||||
* Selects or deselects the row (if in compare mode). Will trigger
|
||||
* an update of the edit form if either selected (in single mode)
|
||||
* or if this is the second row selected (in compare mode)
|
||||
*/
|
||||
*/
|
||||
onclick: function(e) {
|
||||
var compare, selected;
|
||||
|
||||
@ -153,9 +153,9 @@
|
||||
},
|
||||
|
||||
/**
|
||||
* Function: _unselect()
|
||||
* Function: _unselect()
|
||||
*
|
||||
* Unselects the row from the form selection.
|
||||
* Unselects the row from the form selection.
|
||||
*/
|
||||
_unselect: function() {
|
||||
this.removeClass('active');
|
||||
|
@ -23,7 +23,7 @@
|
||||
},
|
||||
|
||||
redraw: function() {
|
||||
var field = this.find(':text'),
|
||||
var field = this.find(':text'),
|
||||
url = decodeURI(field.data('prefix') + field.val()),
|
||||
previewUrl = url;
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
|
||||
/**
|
||||
* Return a value matching the criteria.
|
||||
*
|
||||
*
|
||||
* @param (String)
|
||||
* @param (Function)
|
||||
*/
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "إلغاء",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Storno",
|
||||
"URLSEGMENT.UpdateURL": "Aktualizovat URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Abbrechen",
|
||||
"URLSEGMENT.UpdateURL": "URL aktualisieren"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Άκυρο"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Cancel",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Rezigni",
|
||||
"URLSEGMENT.UpdateURL": "Ĝisdatigi je URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Cancelar",
|
||||
"URLSEGMENT.UpdateURL": "Actualizar URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "لغو",
|
||||
"URLSEGMENT.UpdateURL": "به روز رسانی URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Peruuta",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Annuler",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Mégsem",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Batal",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Hætta við",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Annulla",
|
||||
"URLSEGMENT.UpdateURL": "Aggiornare l'URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "キャンセル",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "취소",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Atšaukti",
|
||||
"URLSEGMENT.UpdateURL": "Atnaujinti URL dalį"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Whakakore",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Avbryt",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Annuleren",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Anuluj",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Renunţare",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Отмена",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Zrušiť",
|
||||
"URLSEGMENT.UpdateURL": "Aktualizovať URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Prekliči",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Одустани",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Odustani",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "موافق",
|
||||
"URLSEGMENT.Cancel": "إلغاء",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Storno",
|
||||
"URLSEGMENT.UpdateURL": "Aktualizovat URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Abbrechen",
|
||||
"URLSEGMENT.UpdateURL": "URL aktualisieren"
|
||||
}
|
||||
}
|
||||
|
@ -36,4 +36,4 @@
|
||||
"URLSEGMENT.Edit": "Επεξεργασία",
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Άκυρο"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Cancel",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "Akcepti",
|
||||
"URLSEGMENT.Cancel": "Rezigni",
|
||||
"URLSEGMENT.UpdateURL": "Ĝisdatigi je URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "Ok",
|
||||
"URLSEGMENT.Cancel": "Cancelar",
|
||||
"URLSEGMENT.UpdateURL": "Actualizar URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "تایید",
|
||||
"URLSEGMENT.Cancel": "لغو",
|
||||
"URLSEGMENT.UpdateURL": "به روز رسانی URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Peruuta",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "Ok",
|
||||
"URLSEGMENT.Cancel": "Annuler",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Mégsem",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Batal",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "Allt í lagi",
|
||||
"URLSEGMENT.Cancel": "Hætta við",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Annulla",
|
||||
"URLSEGMENT.UpdateURL": "Aggiornare l'URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "キャンセル",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "취소",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "Gerai",
|
||||
"URLSEGMENT.Cancel": "Atšaukti",
|
||||
"URLSEGMENT.UpdateURL": "Atnaujinti URL dalį"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "ĀE",
|
||||
"URLSEGMENT.Cancel": "Whakakore",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Avbryt",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Annuleren",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Anuluj",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Renunţare",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "ОК",
|
||||
"URLSEGMENT.Cancel": "Отмена",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Zrušiť",
|
||||
"URLSEGMENT.UpdateURL": "Aktualizovať URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Prekliči",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "У реду",
|
||||
"URLSEGMENT.Cancel": "Одустани",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "U redu",
|
||||
"URLSEGMENT.Cancel": "Odustani",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "OK",
|
||||
"URLSEGMENT.Cancel": "Avbryt",
|
||||
"URLSEGMENT.UpdateURL": "Uppdatera URL"
|
||||
}
|
||||
}
|
||||
|
@ -42,4 +42,4 @@
|
||||
"URLSEGMENT.OK": "确定",
|
||||
"URLSEGMENT.Cancel": "取消",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "Avbryt",
|
||||
"URLSEGMENT.UpdateURL": "Uppdatera URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
"URLSEGMENT.Cancel": "取消",
|
||||
"URLSEGMENT.UpdateURL": "Update URL"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
.cms-content-fields {
|
||||
.cms-edit-form.AssetAdmin {
|
||||
width: 100%;
|
||||
overflow-y:auto; //adds scrolling only to the datagrid
|
||||
overflow-y:auto; //adds scrolling only to the datagrid
|
||||
}
|
||||
|
||||
/**
|
||||
@ -60,5 +60,5 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Style custom to the CMSMain admin interface. CMSMain extends the built in
|
||||
* SilverStripe admin section styles. As much as possible we want to use those
|
||||
* built in styles. If anything in this file can be implemented in a generic
|
||||
* Style custom to the CMSMain admin interface. CMSMain extends the built in
|
||||
* SilverStripe admin section styles. As much as possible we want to use those
|
||||
* built in styles. If anything in this file can be implemented in a generic
|
||||
* way then it should be include in the admin scss files.
|
||||
*
|
||||
* @package cms
|
||||
@ -123,4 +123,4 @@
|
||||
|
||||
#Form_EditForm #Title .update {
|
||||
margin-left: 7px;
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
/**
|
||||
* This file is the central collection of included modules, links to custom SCSS files,
|
||||
* and any global SCSS variable definitions.
|
||||
*
|
||||
*
|
||||
* DO NOT ADD stylesheet rules to this file directly!
|
||||
*
|
||||
*
|
||||
* Note: By prefixing files with an underscore, they won't create individual CSS files.
|
||||
*/
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Shows the pages to an administrator, who can then
|
||||
* decide which pages to remove by ticking a checkbox
|
||||
* and manually executing the removal.
|
||||
*
|
||||
*
|
||||
* Caution: Pages also count as orphans if they don't
|
||||
* have parents in this stage, even if the parent has a representation
|
||||
* in the other stage:
|
||||
@ -16,7 +16,7 @@
|
||||
* before and after orphan removal.
|
||||
*
|
||||
* @author Ingo Schommer (<firstname>@silverstripe.com), SilverStripe Ltd.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage tasks
|
||||
*/
|
||||
@ -87,13 +87,13 @@ in the other stage:<br />
|
||||
$latestAuthor = DataObject::get_by_id('Member', $latestVersion->AuthorID);
|
||||
$orphanBaseClass = ClassInfo::baseDataClass($this->orphanedSearchClass);
|
||||
$stageRecord = Versioned::get_one_by_stage(
|
||||
$this->orphanedSearchClass,
|
||||
$this->orphanedSearchClass,
|
||||
'Stage',
|
||||
array("\"$orphanBaseClass\".\"ID\"" => $orphan->ID)
|
||||
);
|
||||
$liveRecord = Versioned::get_one_by_stage(
|
||||
$this->orphanedSearchClass,
|
||||
'Live',
|
||||
$this->orphanedSearchClass,
|
||||
'Live',
|
||||
array("\"$orphanBaseClass\".\"ID\"" => $orphan->ID)
|
||||
);
|
||||
$label = sprintf(
|
||||
@ -125,11 +125,11 @@ in the other stage:<br />
|
||||
)
|
||||
));
|
||||
$fields->push(new OptionSetField(
|
||||
'OrphanOperation',
|
||||
'OrphanOperation',
|
||||
_t('RemoveOrphanedPagesTask.CHOOSEOPERATION', 'Choose operation:'),
|
||||
array(
|
||||
'rebase' => _t(
|
||||
'RemoveOrphanedPagesTask.OPERATION_REBASE',
|
||||
'RemoveOrphanedPagesTask.OPERATION_REBASE',
|
||||
sprintf(
|
||||
'Rebase selected to a new holder page "%s" and unpublish. None of these pages will show up for website visitors.',
|
||||
$this->rebaseHolderTitle()
|
||||
@ -143,7 +143,7 @@ in the other stage:<br />
|
||||
'Warning',
|
||||
sprintf('<p class="message">%s</p>',
|
||||
_t(
|
||||
'RemoveOrphanedPagesTask.DELETEWARNING',
|
||||
'RemoveOrphanedPagesTask.DELETEWARNING',
|
||||
'Warning: These operations are not reversible. Please handle with care.'
|
||||
)
|
||||
)
|
||||
@ -216,8 +216,8 @@ in the other stage:<br />
|
||||
$orphanBaseClass = ClassInfo::baseDataClass($this->orphanedSearchClass);
|
||||
foreach($orphanIDs as $id) {
|
||||
$stageRecord = Versioned::get_one_by_stage(
|
||||
$this->orphanedSearchClass,
|
||||
'Stage',
|
||||
$this->orphanedSearchClass,
|
||||
'Stage',
|
||||
array("\"$orphanBaseClass\".\"ID\"" => $id)
|
||||
);
|
||||
if($stageRecord) {
|
||||
@ -227,8 +227,8 @@ in the other stage:<br />
|
||||
unset($stageRecord);
|
||||
}
|
||||
$liveRecord = Versioned::get_one_by_stage(
|
||||
$this->orphanedSearchClass,
|
||||
'Live',
|
||||
$this->orphanedSearchClass,
|
||||
'Live',
|
||||
array("\"$orphanBaseClass\".\"ID\"" => $id)
|
||||
);
|
||||
if($liveRecord) {
|
||||
@ -258,7 +258,7 @@ in the other stage:<br />
|
||||
$orphanBaseClass = ClassInfo::baseDataClass($this->orphanedSearchClass);
|
||||
foreach($orphanIDs as $id) {
|
||||
$stageRecord = Versioned::get_one_by_stage(
|
||||
$this->orphanedSearchClass,
|
||||
$this->orphanedSearchClass,
|
||||
'Stage',
|
||||
array("\"$orphanBaseClass\".\"ID\"" => $id)
|
||||
);
|
||||
@ -273,7 +273,7 @@ in the other stage:<br />
|
||||
//unset($stageRecord);
|
||||
}
|
||||
$liveRecord = Versioned::get_one_by_stage(
|
||||
$this->orphanedSearchClass,
|
||||
$this->orphanedSearchClass,
|
||||
'Live',
|
||||
array("\"$orphanBaseClass\".\"ID\"" => $id)
|
||||
);
|
||||
@ -298,7 +298,7 @@ in the other stage:<br />
|
||||
|
||||
/**
|
||||
* Gets all orphans from "Stage" and "Live" stages.
|
||||
*
|
||||
*
|
||||
* @param string $class
|
||||
* @param array $filter
|
||||
* @param string $sort
|
||||
|
@ -18,14 +18,14 @@ class SiteTreeMaintenanceTask extends Controller {
|
||||
$page->write();
|
||||
if($urlSegment != $page->URLSegment) {
|
||||
echo _t(
|
||||
'SiteTree.LINKSCHANGEDTO',
|
||||
" changed {url1} -> {url2}",
|
||||
'SiteTree.LINKSCHANGEDTO',
|
||||
" changed {url1} -> {url2}",
|
||||
array('url1' => $urlSegment, 'url2' => $page->URLSegment)
|
||||
);
|
||||
}
|
||||
else {
|
||||
echo _t(
|
||||
'SiteTree.LINKSALREADYUNIQUE',
|
||||
'SiteTree.LINKSALREADYUNIQUE',
|
||||
" {url} is already unique",
|
||||
array('url' => $urlSegment)
|
||||
);
|
||||
|
@ -11,4 +11,4 @@
|
||||
$Form
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,3 +1,3 @@
|
||||
<div class="message $Classes">
|
||||
<p>$Content</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -20,4 +20,4 @@
|
||||
</tr>
|
||||
<% end_loop %>
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
|
@ -27,4 +27,4 @@
|
||||
</div>
|
||||
<% end_if %>
|
||||
|
||||
</form>
|
||||
</form>
|
||||
|
@ -25,4 +25,4 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -22,4 +22,4 @@
|
||||
$ListViewForm
|
||||
</div>
|
||||
<% end_if %>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -3,4 +3,4 @@
|
||||
<div class="cms-panel-content cms-helper-hide-actions center">
|
||||
$VersionsForm
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -38,4 +38,4 @@
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -18,4 +18,4 @@
|
||||
<%t ContentController.Email "Email" %>: $Username<br />
|
||||
<%t ContentController.Password "Password" %>: $Password<br />
|
||||
</p>
|
||||
<% end_if %>
|
||||
<% end_if %>
|
||||
|
@ -23,4 +23,4 @@
|
||||
<% end_with %>
|
||||
<% include TableListField %>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
<a id="SilverStripeNavigatorLink" href="#">
|
||||
<% _t('SilverStripeNavigatorLink.ShareLink','Share link') %>
|
||||
</a>
|
||||
|
@ -1,3 +1,3 @@
|
||||
<% _t('ViewArchivedEmail_ss.HAVEASKED','You have asked to view the content of our site on',30,'Followed by a date') %> $ArchiveDate.Date
|
||||
|
||||
<% _t('ViewArchivedEmail_ss.CANACCESS','You can access the archived site at this link:') %> $ArchiveURL
|
||||
<% _t('ViewArchivedEmail_ss.CANACCESS','You can access the archived site at this link:') %> $ArchiveURL
|
||||
|
@ -15,4 +15,4 @@
|
||||
<% _t('URLSegmentField.Cancel', 'Cancel') %>
|
||||
</button>
|
||||
<% if $HelpText %><p class="help">$HelpText</p><% end_if %>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -30,4 +30,4 @@ saucelabs:
|
||||
capabilities:
|
||||
platform: "Windows 2008"
|
||||
browser: "firefox"
|
||||
version: "15"
|
||||
version: "15"
|
||||
|
@ -47,7 +47,7 @@ class FeatureContext extends \SilverStripe\Framework\Test\Behaviour\FeatureConte
|
||||
$obj->publish('Stage', 'Live');
|
||||
});
|
||||
$factory->define($class, $blueprint);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext
|
||||
|
||||
/**
|
||||
* Find or create a redirector page and link to another existing page.
|
||||
* Example: Given a "page" "My Redirect" which redirects to a "page" "Page 1"
|
||||
*
|
||||
* Example: Given a "page" "My Redirect" which redirects to a "page" "Page 1"
|
||||
*
|
||||
* @Given /^(?:(an|a|the) )"(?<type>[^"]+)" "(?<id>[^"]+)" (:?which )?redirects to (?:(an|a|the) )"(?<targetType>[^"]+)" "(?<targetId>[^"]+)"$/
|
||||
*/
|
||||
public function stepCreateRedirectorPage($type, $id, $targetType, $targetId) {
|
||||
@ -46,17 +46,17 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* Check if the user can edit a page
|
||||
*
|
||||
* Example: Then pages should be editable by "Admin"
|
||||
*
|
||||
* Example: Then pages should be editable by "Admin"
|
||||
* Then pages should not be editable by "Admin"
|
||||
*
|
||||
*
|
||||
* @Then /^pages should( not? |\s*)be editable by "([^"]*)"$/
|
||||
*/
|
||||
public function pagesShouldBeEditableBy($negative, $member){
|
||||
public function pagesShouldBeEditableBy($negative, $member){
|
||||
$page = \Page::get()->First();
|
||||
|
||||
|
||||
return array(
|
||||
new Step\Given('I am not logged in'),
|
||||
new Step\Given('I am logged in with "' . $member . '" permissions'),
|
||||
|
@ -26,7 +26,7 @@ class ThemeContext extends BehatContext {
|
||||
|
||||
/**
|
||||
* Create a test theme
|
||||
*
|
||||
*
|
||||
* @Given /^a theme "(?<theme>[^"]+)"/
|
||||
*/
|
||||
public function stepCreateTheme($theme) {
|
||||
@ -39,7 +39,7 @@ class ThemeContext extends BehatContext {
|
||||
|
||||
/**
|
||||
* Create a template within a test theme
|
||||
*
|
||||
*
|
||||
* @Given /^a template "(?<template>[^"]+)" in theme "(?<theme>[^"]+)" with content "(?<content>[^"]+)"/
|
||||
*/
|
||||
public function stepCreateTemplate($template, $theme, $content) {
|
||||
@ -76,7 +76,7 @@ class ThemeContext extends BehatContext {
|
||||
|
||||
/**
|
||||
* Clean up any theme manipulation
|
||||
*
|
||||
*
|
||||
* @AfterScenario
|
||||
*/
|
||||
public function cleanThemesAfterScenario() {
|
||||
|
@ -118,7 +118,7 @@ class CMSMainTest extends FunctionalTest {
|
||||
$this->assertArrayHasKey($page2->ID, $responseData['modified']);
|
||||
}
|
||||
|
||||
// Get the latest version of the redirector page
|
||||
// Get the latest version of the redirector page
|
||||
$pageID = $this->idFromFixture('RedirectorPage', 'page5');
|
||||
$latestID = DB::prepared_query('select max("Version") from "RedirectorPage_versions" where "RecordID" = ?', array($pageID))->value();
|
||||
$dsCount = DB::prepared_query('select count("Version") from "RedirectorPage_versions" where "RecordID" = ? and "Version"= ?', array($pageID, $latestID))->value();
|
||||
|
@ -21,7 +21,7 @@ class CMSPageHistoryControllerTest extends FunctionalTest {
|
||||
$this->page = new Page();
|
||||
$this->page->URLSegment = "test";
|
||||
$this->page->Content = "new content";
|
||||
$this->page->write();
|
||||
$this->page->write();
|
||||
$this->versionUnpublishedCheck = $this->page->Version;
|
||||
|
||||
$this->page->Content = "some further content";
|
||||
|
@ -7,4 +7,4 @@ Page:
|
||||
Sort: 2
|
||||
page3:
|
||||
Title: Page 3
|
||||
Sort: 3
|
||||
Sort: 3
|
||||
|
@ -91,8 +91,8 @@ class CMSSiteTreeFilterTest extends SapphireTest {
|
||||
$deletedPageID = $deletedPage->ID;
|
||||
$deletedPage->delete();
|
||||
$deletedPage = Versioned::get_one_by_stage(
|
||||
'SiteTree',
|
||||
'Live',
|
||||
'SiteTree',
|
||||
'Live',
|
||||
array('"SiteTree_Live"."ID"' => $deletedPageID)
|
||||
);
|
||||
|
||||
@ -108,8 +108,8 @@ class CMSSiteTreeFilterTest extends SapphireTest {
|
||||
$draftPage = $this->objFromFixture('Page', 'page4');
|
||||
$draftPage->publish('Stage', 'Stage');
|
||||
$draftPage = Versioned::get_one_by_stage(
|
||||
'SiteTree',
|
||||
'Stage',
|
||||
'SiteTree',
|
||||
'Stage',
|
||||
sprintf('"SiteTree"."ID" = %d', $draftPage->ID)
|
||||
);
|
||||
|
||||
@ -144,8 +144,8 @@ class CMSSiteTreeFilterTest extends SapphireTest {
|
||||
$removedDraftPage->doPublish();
|
||||
$removedDraftPage->deleteFromStage('Stage');
|
||||
$removedDraftPage = Versioned::get_one_by_stage(
|
||||
'SiteTree',
|
||||
'Live',
|
||||
'SiteTree',
|
||||
'Live',
|
||||
sprintf('"SiteTree"."ID" = %d', $removedDraftPage->ID)
|
||||
);
|
||||
|
||||
|
@ -13,9 +13,9 @@ Page:
|
||||
page6:
|
||||
Title: Page 6
|
||||
page7:
|
||||
Title: Page 7
|
||||
Title: Page 7
|
||||
page7a:
|
||||
Parent: =>Page.page7
|
||||
Parent: =>Page.page7
|
||||
Title: Page 7a
|
||||
page2a:
|
||||
Parent: =>Page.page2
|
||||
@ -28,4 +28,4 @@ Page:
|
||||
Title: Page 3a
|
||||
page3b:
|
||||
Parent: =>Page.page3
|
||||
Title: Page 3b
|
||||
Title: Page 3b
|
||||
|
@ -34,7 +34,7 @@ class ContentControllerPermissionsTest extends FunctionalTest {
|
||||
// should redirect to login
|
||||
$this->assertEquals($response->getStatusCode(), 302, 'Redirects to login page when not logged in for draft stage');
|
||||
$this->assertContains(
|
||||
Config::inst()->get('Security', 'login_url'),
|
||||
Config::inst()->get('Security', 'login_url'),
|
||||
$response->getHeader('Location')
|
||||
);
|
||||
|
||||
|
@ -6,9 +6,9 @@ class ContentControllerSearchExtensionTest extends SapphireTest {
|
||||
$page->URLSegment = 'whatever';
|
||||
$page->Content = 'oh really?';
|
||||
$page->write();
|
||||
$page->publish('Stage', 'Live');
|
||||
$page->publish('Stage', 'Live');
|
||||
$controller = new ContentController($page);
|
||||
$form = $controller->SearchForm();
|
||||
$form = $controller->SearchForm();
|
||||
|
||||
if (get_class($form) == 'SearchForm') $this->assertEquals(array('File'), $form->getClassesToSearch());
|
||||
}
|
||||
|
@ -4,13 +4,13 @@
|
||||
* @subpackage tests
|
||||
*/
|
||||
class ContentControllerTest extends FunctionalTest {
|
||||
|
||||
|
||||
protected static $fixture_file = 'ContentControllerTest.yml';
|
||||
|
||||
|
||||
protected static $use_draft_site = true;
|
||||
|
||||
protected static $disable_themes = true;
|
||||
|
||||
|
||||
/**
|
||||
* Test that nested pages, basic actions, and nested/non-nested URL switching works properly
|
||||
*/
|
||||
@ -93,7 +93,7 @@ class ContentControllerTest extends FunctionalTest {
|
||||
}
|
||||
|
||||
public function testViewDraft(){
|
||||
|
||||
|
||||
// test when user does not have permission, should get login form
|
||||
$this->logInWithPermission('EDITOR');
|
||||
try {
|
||||
@ -103,21 +103,21 @@ class ContentControllerTest extends FunctionalTest {
|
||||
}
|
||||
|
||||
$this->assertEquals('403', $response->getstatusCode());
|
||||
|
||||
|
||||
|
||||
|
||||
// test when user does have permission, should show page title and header ok.
|
||||
$this->logInWithPermission('ADMIN');
|
||||
$this->assertEquals('200', $this->get('/contact/?stage=Stage')->getstatusCode());
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function testLinkShortcodes() {
|
||||
$linkedPage = new SiteTree();
|
||||
$linkedPage->URLSegment = 'linked-page';
|
||||
$linkedPage->write();
|
||||
$linkedPage->publish('Stage', 'Live');
|
||||
|
||||
|
||||
$page = new SiteTree();
|
||||
$page->URLSegment = 'linking-page';
|
||||
$page->Content = sprintf('<a href="[sitetree_link,id=%s]">Testlink</a>', $linkedPage->ID);
|
||||
@ -129,7 +129,7 @@ class ContentControllerTest extends FunctionalTest {
|
||||
$this->get($page->RelativeLink())->getBody(),
|
||||
'"sitetree_link" shortcodes get parsed properly'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@ -138,7 +138,7 @@ class ContentControllerTest extends FunctionalTest {
|
||||
* @covers ContentController::getViewer()
|
||||
**/
|
||||
public function testGetViewer() {
|
||||
|
||||
|
||||
$self = $this;
|
||||
$this->useTestTheme(dirname(__FILE__), 'controllertest', function() use ($self) {
|
||||
|
||||
@ -149,8 +149,8 @@ class ContentControllerTest extends FunctionalTest {
|
||||
$page->publish("Stage", "Live");
|
||||
|
||||
$response = $self->get($page->RelativeLink());
|
||||
$self->assertEquals("ContentControllerTestPageWithoutController", $response->getBody());
|
||||
|
||||
$self->assertEquals("ContentControllerTestPageWithoutController", trim($response->getBody()));
|
||||
|
||||
// // This should fall over to user Page.ss
|
||||
$page = new ContentControllerTestPage();
|
||||
$page->URLSegment = "test";
|
||||
@ -158,7 +158,7 @@ class ContentControllerTest extends FunctionalTest {
|
||||
$page->publish("Stage", "Live");
|
||||
|
||||
$response = $self->get($page->RelativeLink());
|
||||
$self->assertEquals("Page", $response->getBody());
|
||||
$self->assertEquals("Page", trim($response->getBody()));
|
||||
|
||||
|
||||
// Test that the action template is rendered.
|
||||
@ -168,12 +168,12 @@ class ContentControllerTest extends FunctionalTest {
|
||||
$page->publish("Stage", "Live");
|
||||
|
||||
$response = $self->get($page->RelativeLink("test"));
|
||||
$self->assertEquals("ContentControllerTestPage_test", $response->getBody());
|
||||
$self->assertEquals("ContentControllerTestPage_test", trim($response->getBody()));
|
||||
|
||||
// Test that an action without a template will default to the index template, which is
|
||||
// to say the default Page.ss template
|
||||
$response = $self->get($page->RelativeLink("testwithouttemplate"));
|
||||
$self->assertEquals("Page", $response->getBody());
|
||||
$self->assertEquals("Page", trim($response->getBody()));
|
||||
|
||||
// Test that an action with a template will render the both action template *and* the
|
||||
// correct parent template
|
||||
|
@ -3,14 +3,14 @@ Group:
|
||||
Title: Editors
|
||||
admins:
|
||||
Title: Administrators
|
||||
|
||||
|
||||
Permission:
|
||||
admins:
|
||||
Code: VIEW_DRAFT_CONTENT
|
||||
Group: =>Group.admins
|
||||
editors:
|
||||
Group: =>Group.editors
|
||||
|
||||
|
||||
Member:
|
||||
editor:
|
||||
FirstName: Test
|
||||
@ -43,4 +43,4 @@ ContentControllerTest_Page:
|
||||
URLSegment: contact
|
||||
CanViewType: OnlyTheseUsers
|
||||
EditorGroups: =>Group.admins
|
||||
|
||||
|
||||
|
@ -14,8 +14,8 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
protected $orig = array();
|
||||
|
||||
/**
|
||||
* New tests require nested urls to be enabled, but the site might not
|
||||
* support nested URLs.
|
||||
* New tests require nested urls to be enabled, but the site might not
|
||||
* support nested URLs.
|
||||
* This setup will enable nested-urls for this test and resets the state
|
||||
* after the tests have been performed.
|
||||
*/
|
||||
@ -27,8 +27,8 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
}
|
||||
|
||||
/**
|
||||
* New tests require nested urls to be enabled, but the site might not
|
||||
* support nested URLs.
|
||||
* New tests require nested urls to be enabled, but the site might not
|
||||
* support nested URLs.
|
||||
* This setup will enable nested-urls for this test and resets the state
|
||||
* after the tests have been performed.
|
||||
*/
|
||||
@ -81,14 +81,14 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
* all pages will be found by their old segments.
|
||||
*
|
||||
* NOTE: This test requires nested_urls
|
||||
*
|
||||
*
|
||||
* Original: level1/level2/level3
|
||||
* Republished as: newlevel1/newlevel2/newlevel3
|
||||
*/
|
||||
public function testRedirectsNestedRenamedPages(){
|
||||
$this->generateNestedPagesFixture();
|
||||
|
||||
// check a first level URLSegment
|
||||
// check a first level URLSegment
|
||||
$response = $this->get('level1/action');
|
||||
$this->assertEquals($response->getStatusCode(),301);
|
||||
$this->assertEquals(
|
||||
@ -96,7 +96,7 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
$response->getHeader('Location')
|
||||
);
|
||||
|
||||
// check second level URLSegment
|
||||
// check second level URLSegment
|
||||
$response = $this->get('newlevel1/level2');
|
||||
$this->assertEquals($response->getStatusCode(),301 );
|
||||
$this->assertEquals(
|
||||
@ -104,7 +104,7 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
$response->getHeader('Location')
|
||||
);
|
||||
|
||||
// check third level URLSegment
|
||||
// check third level URLSegment
|
||||
$response = $this->get('newlevel1/newlevel2/level3');
|
||||
$this->assertEquals($response->getStatusCode(), 301);
|
||||
$this->assertEquals(
|
||||
@ -199,7 +199,7 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
|
||||
$response = $this->get('newlevel1/otherparent');
|
||||
$this->assertEquals(
|
||||
$response->getStatusCode(),
|
||||
$response->getStatusCode(),
|
||||
404,
|
||||
'Requesting an unrelated page on a renamed parent should be interpreted as a missing action, not a redirect'
|
||||
);
|
||||
@ -208,12 +208,12 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
/**
|
||||
*
|
||||
* NOTE: This test requires nested_urls
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function testRedirectsNestedRenamedPagesWithGetParameters() {
|
||||
$this->generateNestedPagesFixture();
|
||||
|
||||
// check third level URLSegment
|
||||
// check third level URLSegment
|
||||
$response = $this->get('newlevel1/newlevel2/level3/?foo=bar&test=test');
|
||||
$this->assertEquals($response->getStatusCode(), 301);
|
||||
$this->assertEquals(
|
||||
@ -225,7 +225,7 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
/**
|
||||
*
|
||||
* NOTE: This test requires nested_urls
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function testDoesntRedirectToNestedRenamedPageWhenNewExists() {
|
||||
$this->generateNestedPagesFixture();
|
||||
@ -239,14 +239,14 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
|
||||
$response = $this->get('level1');
|
||||
$this->assertEquals(
|
||||
$response->getStatusCode(),
|
||||
$response->getStatusCode(),
|
||||
200
|
||||
);
|
||||
|
||||
$response = $this->get('level1/newlevel2');
|
||||
$this->assertEquals(
|
||||
$response->getStatusCode(),
|
||||
404,
|
||||
$response->getStatusCode(),
|
||||
404,
|
||||
'The old newlevel2/ URLSegment is checked as an action on the new page, which shouldnt exist.'
|
||||
);
|
||||
}
|
||||
@ -254,7 +254,7 @@ class ModelAsControllerTest extends FunctionalTest {
|
||||
/**
|
||||
*
|
||||
* NOTE: This test requires nested_urls
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function testFindOldPage(){
|
||||
$page = new Page();
|
||||
|
@ -15,4 +15,4 @@ Page:
|
||||
page3:
|
||||
Title: Third Page
|
||||
URLSegment: page3
|
||||
HomepageForDomain: only.com
|
||||
HomepageForDomain: only.com
|
||||
|
@ -1 +1 @@
|
||||
ContentControllerTestPageWithoutController
|
||||
ContentControllerTestPageWithoutController
|
||||
|
@ -1 +1 @@
|
||||
ContentControllerTestPage_test
|
||||
ContentControllerTestPage_test
|
||||
|
@ -1 +1 @@
|
||||
Controller
|
||||
Controller
|
||||
|
@ -1 +1 @@
|
||||
Page
|
||||
Page
|
||||
|
@ -1 +1 @@
|
||||
$Layout
|
||||
$Layout
|
||||
|
@ -8,4 +8,4 @@ ErrorPage:
|
||||
Title: Permission Failure
|
||||
URLSegment: permission-denied
|
||||
Content: You do not have permission to view this page
|
||||
ErrorCode: 403
|
||||
ErrorCode: 403
|
||||
|
@ -3,8 +3,8 @@ File:
|
||||
file1:
|
||||
Filename: assets/testscript-test-file.pdf
|
||||
|
||||
Page:
|
||||
Page:
|
||||
page1:
|
||||
Title: page1
|
||||
URLSegment: page1
|
||||
Content: <p><img src="assets/testscript-test-file.pdf" /></p>
|
||||
Content: <p><img src="assets/testscript-test-file.pdf" /></p>
|
||||
|
@ -31,7 +31,7 @@ RedirectorPage:
|
||||
Title: Reflexive
|
||||
RedirectionType: Internal
|
||||
LinkTo: =>RedirectorPage.reflexive
|
||||
URLSegment: reflexive
|
||||
URLSegment: reflexive
|
||||
transitive:
|
||||
Title: Transitive
|
||||
RedirectionType: Internal
|
||||
|
@ -8,7 +8,7 @@
|
||||
* - action_deletefromlive
|
||||
* - action_rollback
|
||||
* - action_revert
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage tests
|
||||
*/
|
||||
|
@ -30,4 +30,4 @@ Member:
|
||||
Groups: =>Group.cmsreadonly
|
||||
cmsnodeleteeditor:
|
||||
Email: cmsnodeleteeditor@test.com
|
||||
Groups: =>Group.cmsnodelete
|
||||
Groups: =>Group.cmsnodelete
|
||||
|
@ -1,4 +1,4 @@
|
||||
Page:
|
||||
Page:
|
||||
page1:
|
||||
ID: 1
|
||||
Title: page1
|
||||
@ -13,5 +13,5 @@ Page:
|
||||
URLSegment: page3
|
||||
Content: '<p><a href="[sitetree_link,id=1]">Testing page 1 link</a></p>'
|
||||
LinkTracking: =>Page.page1
|
||||
|
||||
|
||||
|
||||
|
@ -107,7 +107,7 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
|
||||
|
||||
// Confirm no broken link
|
||||
$this->assertEquals(0, (int)$linkSrc->HasBrokenLink);
|
||||
$this->assertEquals(0, DB::query("SELECT \"HasBrokenLink\" FROM \"SiteTree_Live\"
|
||||
$this->assertEquals(0, DB::query("SELECT \"HasBrokenLink\" FROM \"SiteTree_Live\"
|
||||
WHERE \"ID\" = $linkSrc->ID")->value());
|
||||
|
||||
// Delete page from draft
|
||||
@ -119,7 +119,7 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
|
||||
$linkSrc = $this->objFromFixture('Page', 'content');
|
||||
|
||||
$this->assertEquals(1, (int)$linkSrc->HasBrokenLink);
|
||||
$this->assertEquals(0, DB::query("SELECT \"HasBrokenLink\" FROM \"SiteTree_Live\"
|
||||
$this->assertEquals(0, DB::query("SELECT \"HasBrokenLink\" FROM \"SiteTree_Live\"
|
||||
WHERE \"ID\" = $linkSrc->ID")->value());
|
||||
|
||||
// Delete from live
|
||||
@ -131,7 +131,7 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
|
||||
$linkSrc = $this->objFromFixture('Page', 'content');
|
||||
|
||||
$this->assertEquals(1, (int)$linkSrc->HasBrokenLink);
|
||||
$this->assertEquals(1, DB::query("SELECT \"HasBrokenLink\" FROM \"SiteTree_Live\"
|
||||
$this->assertEquals(1, DB::query("SELECT \"HasBrokenLink\" FROM \"SiteTree_Live\"
|
||||
WHERE \"ID\" = $linkSrc->ID")->value());
|
||||
}
|
||||
|
||||
@ -147,12 +147,12 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
|
||||
$linkSrc->Content = "<p><a href=\"[sitetree_link,id=$linkDest->ID]\">about us</a></p>";
|
||||
$linkSrc->write();
|
||||
|
||||
// Publish the source of the link, while the dest is still unpublished.
|
||||
// Publish the source of the link, while the dest is still unpublished.
|
||||
$linkSrc->doPublish();
|
||||
|
||||
// Verify that the link isn't broken on draft but is broken on published
|
||||
$this->assertEquals(0, (int)$linkSrc->HasBrokenLink);
|
||||
$this->assertEquals(1, DB::query("SELECT \"HasBrokenLink\" FROM \"SiteTree_Live\"
|
||||
$this->assertEquals(1, DB::query("SELECT \"HasBrokenLink\" FROM \"SiteTree_Live\"
|
||||
WHERE \"ID\" = $linkSrc->ID")->value());
|
||||
}
|
||||
|
||||
|
@ -24,4 +24,4 @@ File:
|
||||
ErrorPage:
|
||||
404:
|
||||
Title: Page not Found
|
||||
ErrorCode: 404
|
||||
ErrorCode: 404
|
||||
|
@ -2,7 +2,7 @@
|
||||
/**
|
||||
* @package cms
|
||||
* @subpackage tests
|
||||
*
|
||||
*
|
||||
* @todo Test canAddChildren()
|
||||
* @todo Test canCreate()
|
||||
*/
|
||||
@ -47,7 +47,7 @@ class SiteTreePermissionsTest extends FunctionalTest {
|
||||
}
|
||||
$this->assertEquals($response->getStatusCode(), '302');
|
||||
$this->assertContains(
|
||||
Config::inst()->get('Security', 'login_url'),
|
||||
Config::inst()->get('Security', 'login_url'),
|
||||
$response->getHeader('Location')
|
||||
);
|
||||
|
||||
|
@ -85,4 +85,4 @@ Page:
|
||||
URLSegment: deleteTestChildPage
|
||||
draftOnlyPage:
|
||||
CanViewType: Anyone
|
||||
URLSegment: draft-only
|
||||
URLSegment: draft-only
|
||||
|
@ -413,7 +413,7 @@ class SiteTreeTest extends SapphireTest {
|
||||
Versioned::reading_stage('Stage');
|
||||
Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', true);
|
||||
}
|
||||
|
||||
|
||||
public function testDeleteFromLiveOperatesRecursivelyStrict() {
|
||||
$this->logInWithPermission('ADMIN');
|
||||
|
||||
@ -1196,7 +1196,7 @@ class SiteTreeTest_Conflicted_Controller extends Page_Controller implements Test
|
||||
return parent::hasActionTemplate($template);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
class SiteTreeTest_NullHtmlCleaner extends HTMLCleaner {
|
||||
@ -1214,7 +1214,7 @@ class SiteTreeTest_ClassA extends Page implements TestOnly {
|
||||
|
||||
class SiteTreeTest_ClassB extends Page implements TestOnly {
|
||||
// Also allowed subclasses
|
||||
private static $allowed_children = array('SiteTreeTest_ClassC');
|
||||
private static $allowed_children = array('SiteTreeTest_ClassC');
|
||||
}
|
||||
|
||||
class SiteTreeTest_ClassC extends Page implements TestOnly {
|
||||
|
@ -275,7 +275,7 @@ class VirtualPageTest extends FunctionalTest {
|
||||
|
||||
$this->assertEquals($vp->ID, DB::query("SELECT \"RecordID\" FROM \"SiteTree_versions\"
|
||||
WHERE \"RecordID\" = $vp->ID AND \"Title\" = 'T1'")->value());
|
||||
$this->assertEquals($vp->ID, DB::query("SELECT \"RecordID\" FROM \"SiteTree_versions\"
|
||||
$this->assertEquals($vp->ID, DB::query("SELECT \"RecordID\" FROM \"SiteTree_versions\"
|
||||
WHERE \"RecordID\" = $vp->ID AND \"Title\" = 'T2'")->value());
|
||||
$this->assertEquals($vp->ID, DB::query("SELECT \"RecordID\" FROM \"SiteTree_versions\"
|
||||
WHERE \"RecordID\" = $vp->ID AND \"Version\" = $vp->Version")->value());
|
||||
@ -286,12 +286,12 @@ class VirtualPageTest extends FunctionalTest {
|
||||
// version
|
||||
$liveVersion = DB::query("SELECT \"Version\" FROM \"SiteTree_Live\" WHERE \"ID\" = $vp->ID")->value();
|
||||
|
||||
$this->assertEquals("T0", DB::query("SELECT \"Title\" FROM \"SiteTree_Live\"
|
||||
$this->assertEquals("T0", DB::query("SELECT \"Title\" FROM \"SiteTree_Live\"
|
||||
WHERE \"ID\" = $vp->ID")->value());
|
||||
|
||||
// SiteTree_Live.Version should reference a legal entry in SiteTree_versions for the
|
||||
// virtual page
|
||||
$this->assertEquals("T0", DB::query("SELECT \"Title\" FROM \"SiteTree_versions\"
|
||||
$this->assertEquals("T0", DB::query("SELECT \"Title\" FROM \"SiteTree_versions\"
|
||||
WHERE \"RecordID\" = $vp->ID AND \"Version\" = $liveVersion")->value());
|
||||
}
|
||||
|
||||
@ -422,12 +422,12 @@ class VirtualPageTest extends FunctionalTest {
|
||||
$virtual->copyFrom($original);
|
||||
// Using getField() to avoid side effects from an overloaded __get()
|
||||
$this->assertEquals(
|
||||
'original',
|
||||
'original',
|
||||
$virtual->getField('MyInitiallyCopiedField'),
|
||||
'Fields listed in $initially_copied_fields are copied on first copyFrom() invocation'
|
||||
);
|
||||
$this->assertEquals(
|
||||
'original',
|
||||
'original',
|
||||
$virtual->getField('MyVirtualField'),
|
||||
'Fields not listed in $initially_copied_fields are copied in copyFrom()'
|
||||
);
|
||||
@ -440,7 +440,7 @@ class VirtualPageTest extends FunctionalTest {
|
||||
$original->write();
|
||||
$virtual->copyFrom($original);
|
||||
$this->assertEquals(
|
||||
'original',
|
||||
'original',
|
||||
$virtual->MyInitiallyCopiedField,
|
||||
'Fields listed in $initially_copied_fields are not copied on subsequent copyFrom() invocations'
|
||||
);
|
||||
@ -466,8 +466,8 @@ class VirtualPageTest extends FunctionalTest {
|
||||
$virtual->Title = 'changed 1';
|
||||
$virtual->writeWithoutVersion();
|
||||
$this->assertEquals(
|
||||
$virtual->Version,
|
||||
$virtualVersion,
|
||||
$virtual->Version,
|
||||
$virtualVersion,
|
||||
'writeWithoutVersion() on VirtualPage doesnt increment version'
|
||||
);
|
||||
|
||||
@ -477,8 +477,8 @@ class VirtualPageTest extends FunctionalTest {
|
||||
DataObject::flush_and_destroy_cache();
|
||||
$virtual = DataObject::get_by_id('VirtualPage', $virtual->ID, false);
|
||||
$this->assertEquals(
|
||||
$virtual->Version,
|
||||
$virtualVersion,
|
||||
$virtual->Version,
|
||||
$virtualVersion,
|
||||
'writeWithoutVersion() on original page doesnt increment version on related VirtualPage'
|
||||
);
|
||||
|
||||
@ -487,8 +487,8 @@ class VirtualPageTest extends FunctionalTest {
|
||||
DataObject::flush_and_destroy_cache();
|
||||
$virtual = DataObject::get_by_id('VirtualPage', $virtual->ID, false);
|
||||
$this->assertGreaterThan(
|
||||
$virtualVersion,
|
||||
$virtual->Version,
|
||||
$virtualVersion,
|
||||
$virtual->Version,
|
||||
'write() on original page does increment version on related VirtualPage'
|
||||
);
|
||||
}
|
||||
@ -500,7 +500,7 @@ class VirtualPageTest extends FunctionalTest {
|
||||
|
||||
$notRootPage = new VirtualPageTest_NotRoot();
|
||||
// we don't want the original on root, but rather the VirtualPage pointing to it
|
||||
$notRootPage->ParentID = $page->ID;
|
||||
$notRootPage->ParentID = $page->ID;
|
||||
$notRootPage->write();
|
||||
|
||||
$virtual = new VirtualPage();
|
||||
@ -517,7 +517,7 @@ class VirtualPageTest extends FunctionalTest {
|
||||
} catch(ValidationException $e) {
|
||||
$this->assertContains('is not allowed on the root level', $e->getMessage());
|
||||
$isDetected = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$isDetected) $this->fail('Fails validation with $can_be_root=false');
|
||||
}
|
||||
@ -645,7 +645,7 @@ class VirtualPageTest extends FunctionalTest {
|
||||
} catch(ValidationException $e) {
|
||||
$this->assertContains('not allowed as child of this parent page', $e->getMessage());
|
||||
$isDetected = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$isDetected) $this->fail("Shouldn't be allowed to write a VirtualPage that links to a disallowed child");
|
||||
}
|
||||
@ -682,7 +682,7 @@ class VirtualPageTest_ClassA extends Page implements TestOnly {
|
||||
}
|
||||
|
||||
class VirtualPageTest_ClassB extends Page implements TestOnly {
|
||||
private static $allowed_children = array('VirtualPageTest_ClassC');
|
||||
private static $allowed_children = array('VirtualPageTest_ClassC');
|
||||
}
|
||||
|
||||
class VirtualPageTest_ClassC extends Page implements TestOnly {
|
||||
|
@ -14,4 +14,4 @@ VirtualPage:
|
||||
vp2:
|
||||
CopyContentFrom: =>Page.master
|
||||
Parent: =>Page.holder
|
||||
|
||||
|
||||
|
@ -2,4 +2,4 @@ SiteTree:
|
||||
after:
|
||||
Title: after
|
||||
before:
|
||||
Title: before
|
||||
Title: before
|
||||
|
@ -2,10 +2,10 @@
|
||||
/**
|
||||
* @package cms
|
||||
* @subpackage testing
|
||||
*
|
||||
*
|
||||
* @todo Fix unpublished pages check in testPublishedPagesMatchedByTitle()
|
||||
* @todo All tests run on unpublished pages at the moment, due to the searchform not distinguishing between them
|
||||
*
|
||||
*
|
||||
* Because this manipulates the test database in severe ways, I've renamed the test to force it to run last...
|
||||
*/
|
||||
class ZZZSearchFormTest extends FunctionalTest {
|
||||
|
@ -40,4 +40,4 @@ File:
|
||||
ShowInSearch: 1
|
||||
dontShowInSearchFile:
|
||||
Title: dontShowInSearchFile
|
||||
ShowInSearch: 0
|
||||
ShowInSearch: 0
|
||||
|
@ -58,7 +58,7 @@ class MigrateSiteTreeLinkingTaskTest extends SapphireTest {
|
||||
'HTML URLSegment links are rewritten.'
|
||||
);
|
||||
$this->assertEquals (
|
||||
$aboutContent,
|
||||
$aboutContent,
|
||||
DataObject::get_by_id('SiteTree', $aboutID)->Content
|
||||
);
|
||||
$this->assertEquals (
|
||||
|
@ -14,7 +14,7 @@
|
||||
* parent2
|
||||
* child2_1_published_orphaned // is orphaned because parent is not published
|
||||
* </code>
|
||||
*
|
||||
*
|
||||
* <h2>Cleaned up tree</h2>
|
||||
* <code>
|
||||
* parent1_published
|
||||
@ -24,9 +24,9 @@
|
||||
* child2_1_published_orphaned
|
||||
* parent2
|
||||
* </code>
|
||||
*
|
||||
*
|
||||
* @author Ingo Schommer (<firstname>@silverstripe.com), SilverStripe Ltd.
|
||||
*
|
||||
*
|
||||
* @package cms
|
||||
* @subpackage tests
|
||||
*/
|
||||
|
@ -29,4 +29,4 @@ Page:
|
||||
Title: Parent2
|
||||
child2_1_published_orphaned:
|
||||
Title: Child2.1
|
||||
Parent: =>Page.parent2
|
||||
Parent: =>Page.parent2
|
||||
|
Loading…
Reference in New Issue
Block a user