First post

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@50105 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Geoff Munn 2008-02-25 01:06:39 +00:00
parent f640e12242
commit 4475726ad6
81 changed files with 810 additions and 1931 deletions

View File

@ -1,12 +1,11 @@
<?php
/**
* URL rules for the CMS module
* @package cms
*/
Director::addRules(50, array(
'processes/$Action/$ID/$Batch' => 'BatchProcess_Controller',
'silverstripe' => '->admin',
'cms' => '->admin',
'silverstripe/' => '->admin/',
'cms/' => '->admin/',
'admin/statistics/$Action/$ID' => 'StatisticsAdmin',
'admin/security/$Action/$ID/$OtherID' => 'SecurityAdmin',
'admin/help/$Action/$ID' => 'CMSHelp',
@ -18,7 +17,8 @@ Director::addRules(50, array(
'admin/bulkload/$Action/$ID/$OtherID' => 'BulkLoaderAdmin',
'admin/ImageEditor/$Action' => 'ImageEditor',
'admin/$Action/$ID/$OtherID' => 'CMSMain',
'unsubscribe/$Email/$MailingList' => 'Unsubscribe_Controller'
'unsubscribe/$Email/$MailingList' => 'Unsubscribe_Controller',
'membercontrolpanel/$Email' => 'MemberControlPanel'
));
?>

View File

@ -1,33 +1,11 @@
<?php
/**
* @package cms
* @subpackage assets
*/
/**
* AssetAdmin is the 'file store' section of the CMS.
* It provides an interface for maniupating the File and Folder objects in the system.
* @package cms
* @subpackage assets
*/
class AssetAdmin extends LeftAndMain {
static $tree_class = "File";
static $allowed_actions = array(
'addfolder',
'deletefolder',
'deletemarked',
'deleteUnusedThumbnails',
'doUpload',
'getfile',
'getsubtree',
'movemarked',
'removefile',
'save',
'savefile',
'uploadiframe',
);
public function Link($action=null) {
if(!$action) $action = "index";
@ -86,6 +64,15 @@ class AssetAdmin extends LeftAndMain {
Requirements::css("cms/css/AssetAdmin.css");
}
/**
* Display the upload form. Returns an iframe tag that will show admin/assets/uploadiframe.
*/
function getUploadIframe() {
return <<<HTML
<iframe name="AssetAdmin_upload" src="admin/assets/uploadiframe/{$this->urlParams['ID']}" id="AssetAdmin_upload" border="0" style="border-style: none; width: 100%; height: 200px">
</iframe>
HTML;
}
function index() {
File::sync();
@ -168,7 +155,7 @@ class AssetAdmin extends LeftAndMain {
foreach($processedFiles as $file) {
if($file['error'] == UPLOAD_ERR_NO_TMP_DIR) {
$status = 'bad';
$statusMessage = _t('AssetAdmin.NOTEMP', 'There is no temporary folder for uploads. Please set upload_tmp_dir in php.ini.');
$statusMessage = 'There is no temporary folder for uploads. Please set upload_tmp_dir in php.ini.';
break;
}
@ -217,24 +204,8 @@ class AssetAdmin extends LeftAndMain {
$statusMessage = _t('AssetAdmin.NOTHINGTOUPLOAD','There was nothing to upload');
$status = "";
}
$fileIDs = array();
$fileNames = array();
foreach($newFiles as $newFile) {
$fileIDs[] = $newFile;
$fileObj = DataObject::get_one('File', "`File`.ID=$newFile");
$fileNames[] = $fileObj->Name;
}
$sFileIDs = implode(',', $fileIDs);
$sFileNames = implode(',', $fileNames);
echo <<<HTML
<script type="text/javascript">
/* IDs: $sFileIDs */
/* Names: $sFileNames */
var form = parent.document.getElementById('Form_EditForm');
form.getPageFromServer(form.elements.ID.value);
parent.statusMessage("{$statusMessage}","{$status}");
@ -259,8 +230,62 @@ HTML;
$record = singleton("Folder");
}
if($record) {
$fields = $record->getCMSFields();
$fileList = new AssetTableField(
$this,
"Files",
"File",
array("Title" => _t('AssetAdmin.TITLE', "Title"), "LinkedURL" => _t('AssetAdmin.FILENAME', "Filename")),
""
);
$fileList->setFolder($record);
$fileList->setPopupCaption(_t('AssetAdmin.VIEWEDITASSET', "View/Edit Asset"));
if($record) {
$nameField = ($id != "root") ? new TextField("Name", "Folder Name") : new HiddenField("Name");
if( $record->userCanEdit() ) {
$deleteButton = new InlineFormAction('deletemarked',_t('AssetAdmin.DELSELECTED','Delete selected files'), 'delete');
$deleteButton->includeDefaultJS(false);
} else {
$deleteButton = new HiddenField('deletemarked');
}
$fields = new FieldSet(
new HiddenField("Title"),
new TabSet("Root",
new Tab(_t('AssetAdmin.FILESTAB', "Files"),
$nameField,
$fileList,
$deleteButton,
new HiddenField("FileIDs"),
new HiddenField("DestFolderID")
),
new Tab(_t('AssetAdmin.DETAILSTAB', "Details"),
new ReadonlyField("URL"),
new ReadonlyField("ClassName", _t('AssetAdmin.TYPE','Type')),
new ReadonlyField("Created", _t('AssetAdmin.CREATED','First Uploaded')),
new ReadonlyField("LastEdited", _t('AssetAdmin.LASTEDITED','Last Updated'))
),
new Tab(_t('AssetAdmin.UPLOADTAB', "Upload"),
new LiteralField("UploadIframe",
$this->getUploadIframe()
)
),
new Tab(_t('AssetAdmin.UNUSEDFILESTAB', "Unused files"),
new LiteralField("UnusedAssets",
"<div id=\"UnusedAssets\"><h2>"._t('AssetAdmin.UNUSEDFILESTITLE', 'Unused files')."</h2>"
),
$this->getAssetList(),
new LiteralField("UnusedThumbnails",
"</div>
<div id=\"UnusedThumbnails\">
<h2>"._t('AssetAdmin.UNUSEDTHUMBNAILSTITLE', 'Unused thumbnails')."</h2>
<button class=\"action\">"._t('AssetAdmin.DELETEUNUSEDTHUMBNAILS', 'Delete unused thumbnails')."</button>
</div>"
)
)
),
new HiddenField("ID")
);
$actions = new FieldSet();
@ -343,7 +368,7 @@ HTML;
$brokenPageList = '';
if($fileList != "''") {
$files = DataObject::get("File", "`File`.ID IN ($fileList)");
$files = DataObject::get("File", "ID IN ($fileList)");
if($files) {
foreach($files as $file) {
if($file instanceof Image) {
@ -421,7 +446,8 @@ JS;
/**
* Return the entire site tree as a nested set of ULs
*/
*/
public function SiteTreeAsUL() {
$obj = singleton('Folder');
$obj->setMarkingFilter("ClassName", "Folder");
@ -435,7 +461,7 @@ JS;
' "<li id=\"record-$child->ID\" class=\"$child->class" . $child->markingClasses() . ($extraArg->isCurrentPage($child) ? " current" : "") . "\">" . ' .
' "<a href=\"" . Director::link(substr($extraArg->Link(),0,-1), "show", $child->ID) . "\" class=\"" . ($child->hasChildren() ? " contents" : "") . "\" >" . $child->TreeTitle() . "</a>" ',
' "<a href=\"" . Director::link(substr($extraArg->Link(),0,-1), "show", $child->ID) . "\" class=\"" . ($child->hasChildren() ? " contents" : "") . "\" >" . $child->Title . "</a>" ',
$this, true);
@ -465,7 +491,7 @@ JS;
' "<li id=\"record-$child->ID\" class=\"$child->class" . $child->markingClasses() . ($extraArg->isCurrentPage($child) ? " current" : "") . "\">" . ' .
' "<a href=\"" . Director::link(substr($extraArg->Link(),0,-1), "show", $child->ID) . "\" >" . $child->TreeTitle() . "</a>" ',
' "<a href=\"" . Director::link(substr($extraArg->Link(),0,-1), "show", $child->ID) . "\" >" . $child->Title . "</a>" ',
$this, true);
@ -493,7 +519,7 @@ JS;
$p->ParentID = $parent;
$p->Title = _t('AssetAdmin.NEWFOLDER',"NewFolder");
$p->Name = _t('AssetAdmin.NEWFOLDER', 'NewFolder');
$p->Name = "NewFolder";
// Get the folder to be created
if(isset($parentObj->ID)) $filename = $parentObj->FullPath . $p->Name;
@ -619,24 +645,12 @@ if(!$record)
}*/
/*
$s = (sizeof($ids) > 1) ? "s" :"";
$message = sizeof($ids) . " folder$s deleted.";
//
if(isset($brokenPageList)) $message .= " The following pages now have broken links:<ul>" . addslashes($brokenPageList) . "</ul>Their owners have been emailed and they will fix up those pages.";
*/
$size = sizeof($ids);
if($size > 1)
$message = $size.' '._t('AssetAdmin.FOLDERSDELETED', 'folders deleted.');
else
$message = $size.' '._t('AssetAdmin.FOLDERDELETED', 'folder deleted.');
if(isset($brokenPageList))
$message .= ' '._t('AssetAdmin.NOWBROKEN', 'The following pages now have broken links:').'<ul>'.addslashes($brokenPageList).'</ul>'.
_t('AssetAdmin.NOWBROKEN2', 'Their owners have been emailed and they will fix up those pages.');
$script .= "statusMessage('$message');";
echo $script;
}
@ -693,7 +707,7 @@ JS;
foreach($this->getUnusedThumbnailsArray() as $file) {
unlink("../assets/" . $file);
}
echo "statusMessage('"._t('AssetAdmin.THUMBSDELETED', 'All unused thumbnails have been deleted')."','good')";
echo "statusMessage('All unused thumbnails have been deleted','good')";
}
/**

View File

@ -1,14 +1,4 @@
<?php
/**
* @package cms
* @subpackage assets
*/
/**
* A special kind of complex table field for manipulating assets.
* @package cms
* @subpackage assets
*/
class AssetTableField extends ComplexTableField {
protected $folder;
@ -70,13 +60,13 @@ class AssetTableField extends ComplexTableField {
}
$urlLink = "<div class='field readonly'>";
$urlLink .= "<label class='left'>"._t('AssetTableField.URL','URL')."</label>";
$urlLink .= "<label class='left'>URL</label>";
$urlLink .= "<span class='readonly'><a href='{$childData->Link()}'>{$childData->RelativeLink()}</a></span>";
$urlLink .= "</div>";
$detailFormFields = new FieldSet(
new TabSet("BottomRoot",
new Tab(_t('AssetTableField.MAIN', 'Main'),
new Tab("Main",
new TextField("Title", _t('AssetTableField.TITLE','Title')),
new TextField("Name", _t('AssetTableField.FILENAME','Filename')),
new LiteralField("AbsoluteURL", $urlLink),
@ -93,16 +83,15 @@ class AssetTableField extends ComplexTableField {
$big = $childData->URL;
$thumbnail = $childData->getFormattedImage('AssetLibraryPreview')->URL;
// Hmm this required the translated string to be appended to BottomRoot to add this to the Main tab
$detailFormFields->addFieldToTab("BottomRoot."._t('AssetTableField.MAIN','Main'),
$detailFormFields->addFieldToTab("BottomRoot.Main",
new ReadonlyField("Dimensions", _t('AssetTableField.DIM','Dimensions')),
"Created"
);
$detailFormFields->addFieldToTab("BottomRoot",
new Tab(_t('AssetTableField.IMAGE', 'Image'),
new Tab("Image",
new LiteralField("ImageFull",
'<a id="ImageEditorActivator" href="javascript: void(0)">' . "<img id='thumbnailImage' src='{$thumbnail}?r=" . rand(1,100000) . "' alt='{$childData->Name}' /><p>"._t('AssetTableField.EDITIMAGE', 'Edit this image')."</p>" . '</a>' .
'<a id="ImageEditorActivator" href="javascript: void(0)">' . "<img id='thumbnailImage' src='{$thumbnail}?r=" . rand(1,100000) . "' alt='{$childData->Name}' /><p>Edit this image</p>" . '</a>' .
'<script type="text/javascript" src="cms/javascript/ImageEditor/Activator.js"></script><script type="text/javascript">var imageActivator = new ImageEditor.Activator.initialize();Event.observe("ImageEditorActivator","click",imageActivator.onOpen);</script>'
)
),
@ -111,8 +100,8 @@ class AssetTableField extends ComplexTableField {
if(class_exists('GalleryFile')) {
$detailFormFields->addFieldToTab("BottomRoot",
new Tab(_t('AssetTableField.GALLERYOPTIONS', 'Gallery Options'),
new TextField( "Content", _t('AssetTableField.CAPTION', 'Caption') )
new Tab("Gallery Options",
new TextField( "Content", "Caption" )
)
);
}
@ -120,22 +109,22 @@ class AssetTableField extends ComplexTableField {
else if (class_exists('GalleryFile')) {
if( $childData->Extension == 'swf' ) {
$detailFormFields->addFieldToTab("BottomRoot",
new Tab(_t('AssetTableField.GALLERYOPTIONS', 'Gallery Options'),
new TextField( "Content", _t('AssetTableField.CAPTION', 'Caption') ),
new TextField( 'PopupWidth', _t('AssetTableField.POPUPWIDTH', 'Popup Width') ),
new TextField( 'PopupHeight', _t('AssetTableField.POPUPHEIGHT', 'Popup Height') ),
new HeaderField( _t('AssetTableField.SWFFILEOPTIONS', 'SWF File Options') ),
new CheckboxField( 'Embed', _t('AssetTableField.ISFLASH', 'Is A Flash Document') ),
new CheckboxField( 'LimitDimensions', _t('AssetTableField.DIMLIMT', 'Limit The Dimensions In The Popup Window') )
new Tab("Gallery Options",
new TextField( "Content", "Caption" ),
new TextField( 'PopupWidth', 'Popup Width' ),
new TextField( 'PopupHeight', 'Popup Height' ),
new HeaderField( 'SWF File Options' ),
new CheckboxField( 'Embed', 'Is A Flash Document' ),
new CheckboxField( 'LimitDimensions', 'Limit The Dimensions In The Popup Window' )
)
);
}
else {
$detailFormFields->addFieldToTab("BottomRoot",
new Tab(_t('AssetTableField.GALLERYOPTIONS', 'Gallery Options'),
new TextField( "Content", _t('AssetTableField.CAPTION', 'Caption') ),
new TextField( 'PopupWidth', _t('AssetTableField.POPUPWIDTH', 'Popup Width') ),
new TextField( 'PopupHeight', _t('AssetTableField.POPUPHEIGHT', 'Popup Height') )
new Tab("Gallery Options",
new TextField( "Content", "Caption" ),
new TextField( 'PopupWidth', 'Popup Width' ),
new TextField( 'PopupHeight', 'Popup Height' )
)
);
}

View File

@ -1,16 +1,5 @@
<?php
/**
* @package cms
* @subpackage bulkloading
*/
/**
* An abstract base for bulk loaders of content into the SilverStripe database.
* Bulk loaders give SilverStripe authors the ability to do large-scale CSV uploads into their Sapphire databases.
* @package cms
* @subpackage bulkloading
*/
abstract class BulkLoader extends ViewableData {
/**
* Override this on subclasses to give the specific functions names

View File

@ -1,18 +1,11 @@
<?php
/**
* @package cms
* @subpackage bulkloading
*/
/**
* Class to provide batch-update facilities to CMS users.
* The BulkLoaderAdmin class provides an interface for accessing all of the subclasses of BulkLoader,
* each of which defines a particular bulk loading operation.
*
* @package cms
* @subpackage bulkloading
* @deprecated This class has never been used in production; if we're going to continue to support it we should increase its usefulness.
* This code was originally developed for Per Week in collaboration with Brian Calhoun.
*/
class BulkLoaderAdmin extends LeftAndMain {

View File

@ -1,15 +1,8 @@
<?php
/**
* @package cms
* @subpackage core
*/
/**
* A special kind of form used to make the action dialogs that appear just underneath the top-right
* buttons in the CMS
* @package cms
* @subpackage core
*/
class CMSActionOptionsForm extends Form {
function FormAttributes() {

8
code/CMSHelp.php Executable file
View File

@ -0,0 +1,8 @@
<?php
class CMSHelp extends Controller {
}
?>

View File

@ -1,15 +1,8 @@
<?php
/**
* @package cms
* @subpackage content
*/
/**
* The main "content" area of the CMS.
* This class creates a 2-frame layout - left-tree and right-form - to sit beneath the main
* admin menu.
* @package cms
* @subpackage content
* @todo Create some base classes to contain the generic functionality that will be replicated.
*/
class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionProvider {
@ -18,36 +11,6 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
static $subitem_class = "Member";
static $allowed_actions = array(
'addmember',
'addpage',
'buildbrokenlinks',
'canceldraftchangesdialog',
'compareversions',
'createtranslation',
'delete',
'deletefromlive',
'deleteitems',
'dialog',
'duplicate',
'duplicatewithchildren',
'getpagecount',
'getpagemembers',
'getversion',
'publishall',
'publishitems',
'restorepage',
'revert',
'rollback',
'sidereport',
'submit',
'switchlanguage',
'tasklist',
'unpublish',
'versions',
'waitingon',
);
/**
* SiteTree Columns that can be filtered using the the Site Tree Search button
*/
@ -272,7 +235,7 @@ JS;
$classes = ClassInfo::getValidSubClasses();
array_shift($classes);
$result = new DataObjectSet();
$kill_ancestors = array();
$kill_ancestors[] = null;
// figure out if there are any classes we don't want to appear
foreach($classes as $class) {
@ -289,8 +252,7 @@ JS;
if ($kill_ancestors) {
foreach ($kill_ancestors as $mark) {
// unset from $classes
$idx = array_search($mark, $classes);
unset($classes[$idx]);
unset($classes[$mark]);
}
}
@ -303,26 +265,20 @@ JS;
// skip this type if it is restricted
if($instance->stat('need_permission') && !$this->can( singleton($class)->stat('need_permission') ) ) continue;
/*
* Since i18n_singular_name() this is not necessary
$addAction = $instance->uninherited('add_action', true);
if($addAction) {
// backwards compatibility for actions like "a page" (instead of "page")
$addAction = preg_replace('/^a /','',$addAction);
$addAction = ucfirst($addAction);
} else {
$addAction = $instance->i18n_singular_name();
$addAction = $class;
}
*/
$addAction = $instance->i18n_singular_name();
$result->push(new ArrayData(array(
"ClassName" => $class,
"AddAction" => $addAction,
)));
}
$result->sort('AddAction');
return $result;
}
@ -471,9 +427,7 @@ JS;
$newItem->ClassName = $className;
$newItem->ParentID = $parentID;
// DataObject::fieldExists only checks the current class, not the hierarchy
// This allows the CMS to set the correct sort value
if($newItem->castingHelperPair('Sort')) {
if($newItem->fieldExists('Sort')) {
$newItem->Sort = DB::query("SELECT MAX(Sort) FROM SiteTree WHERE ParentID = '" . Convert::raw2sql($parentID) . "'")->value() + 1;
}
@ -482,9 +436,6 @@ JS;
if($setID) $newItem->ID = $id;
# Some modules like subsites add extra fields that need to be set when the new item is created
$this->extend('augmentNewSiteTreeItem', $newItem);
return $newItem;
}
@ -519,13 +470,13 @@ JS;
if(isset($descendantsRemoved)) {
$descRemoved = " and $descendantsRemoved descendants";
$descRemoved = sprintf(' '._t('CMSMain.DESCREMOVED', 'and %s descendants'), $descendantsRemoved);
} else {
$descRemoved = '';
}
$title = Convert::raw2js($record->Title);
FormResponse::add($this->deleteTreeNodeJS($record));
FormResponse::status_message(sprintf(_t('CMSMain.REMOVED', 'Deleted \'%s\'%s from live site'), $record->Title, $descRemoved), 'good');
FormResponse::status_message("Deleted '$title'$descRemoved from live site", 'good');
return FormResponse::respond();
}
@ -540,7 +491,7 @@ JS;
//$record->PublishedByID = Member::currentUser()->ID;
$record->write();
$record->publish("Stage", "Live");
GoogleSitemap::ping();
// Fix the sort order for this page's siblings
@ -717,7 +668,7 @@ HTML;
foreach($reports as $report) {
if($report != 'SideReport') $options[$report] = singleton($report)->title();
}
return new DropdownField("ReportSelector", _t('CMSMain.REPORT', 'Report'),$options);
return new DropdownField("ReportSelector","Report",$options);
}
/**
* Get the content for a side report
@ -883,7 +834,7 @@ HTML;
$form->loadDataFrom($record);
$form->loadDataFrom(array(
"ID" => $id,
"Version" => $fromVersion,
"Version" => $version,
));
$form->makeReadonly();
foreach($form->Fields()->dataFields() as $field) {
@ -1172,23 +1123,14 @@ HTML;
ini_set('max_execution_time', 300);
if(isset($_POST['confirm'])) {
$start = 0;
$pages = DataObject::get("SiteTree", "", "", "", "$start,30");
$pages = DataObject::get("SiteTree");
$count = 0;
while(true) {
foreach($pages as $page) {
$this->performPublish($page);
$page->destroy();
unset($page);
$count++;
echo "<li>$count</li>";
}
if($pages->Count() > 29) {
$start += 30;
$pages = DataObject::get("SiteTree", "", "", "", "$start,30");
} else {
break;
}
foreach($pages as $page) {
$this->performPublish($page);
$page->destroy();
unset($page);
$count++;
echo "<li>$count";
}
echo sprintf(_t('CMSMain.PUBPAGES',"Done: Published %d pages"), $count);
@ -1225,24 +1167,6 @@ HTML;
$page = DataObject::get_by_id("SiteTree", $id);
$newPage = $page->duplicate();
// ParentID can be hard-set in the URL. This is useful for pages with multiple parents
if($_GET['parentID'] && is_numeric($_GET['parentID'])) {
$newPage->ParentID = $_GET['parentID'];
$newPage->write();
}
return $this->returnItemToUser($newPage);
} else {
user_error("CMSMain::duplicate() Bad ID: '$id'", E_USER_WARNING);
}
}
function duplicatewithchildren() {
if(($id = $this->urlParams['ID']) && is_numeric($id)) {
$page = DataObject::get_by_id("SiteTree", $id);
$newPage = $page->duplicateWithChildren();
return $this->returnItemToUser($newPage);
} else {
@ -1354,6 +1278,29 @@ JS
return $this->returnItemToUser($newrecord);
}
// HACK HACK HACK - Dont remove without telling simon ;-)
/**
* This is only used by parents inc.
* TODO Work out a better way of handling control to the individual page objects.
*/
function sethottip($data,$form) {
$page = DataObject::get_by_id("SiteTree", $_REQUEST['ID']);
return $page->sethottip($data,$form);
}
/**
* This is only used by parents inc.
* TODO Work out a better way of handling control to the individual page objects.
*/
function notifyInvitation($data,$form) {
$page = DataObject::get_by_id("SiteTree", $_REQUEST['ID']);
return $page->notifyInvitation($data,$form);
}
function testInvitation($data,$form) {
$page = DataObject::get_by_id("SiteTree", $_REQUEST['ID']);
return $page->testInvitation($data,$form);
}
/**
* Provide the permission codes used by LeftAndMain.
* Can't put it on LeftAndMain since that's an abstract base class.
@ -1362,7 +1309,7 @@ JS
$classes = ClassInfo::subclassesFor('LeftAndMain');
foreach($classes as $class) {
$perms["CMS_ACCESS_" . $class] = sprintf(_t('CMSMain.ACCESS', "Access to %s in CMS"), $class);
$perms["CMS_ACCESS_" . $class] = "Access to $class in CMS";
}
return $perms;
}

View File

@ -1,30 +1,12 @@
<?php
/**
* @package cms
* @subpackage comments
*/
/**
* Comment administration system within the CMS
* @package cms
* @subpackage comments
*/
class CommentAdmin extends LeftAndMain {
static $allowed_actions = array(
'approvedmarked',
'deleteall',
'deletemarked',
'hammarked',
'showtable',
'spammarked',
);
public function init() {
parent::init();
Requirements::javascript('cms/javascript/CommentAdmin_right.js');
Requirements::css('cms/css/CommentAdmin.css');
Requirements::javascript("cms/javascript/CommentAdmin_right.js");
Requirements::css("cms/css/CommentAdmin.css");
}
public function Link($action = null) {
@ -54,27 +36,27 @@ class CommentAdmin extends LeftAndMain {
if($section == 'approved') {
$filter = 'IsSpam=0 AND NeedsModeration=0';
$title = "<h2>". _t('CommentAdmin.APPROVEDCOMMENTS', 'Approved Comments')."</h2>";
$title = "<h2>Approved Comments</h2>";
} else if($section == 'unmoderated') {
$filter = 'NeedsModeration=1';
$title = "<h2>"._t('CommentAdmin.COMMENTSAWAITINGMODERATION', 'Comments Awaiting Moderation')."</h2>";
$title = "<h2>Comments Awaiting Moderation</h2>";
} else {
$filter = 'IsSpam=1';
$title = "<h2>"._t('CommentAdmin.SPAM', 'Spam')."</h2>";
$title = "<h2>Spam</h2>";
}
$filter .= ' AND ParentID>0';
$tableFields = array(
"Name" => _t('CommentAdmin.AUTHOR', 'Author'),
"Comment" => _t('CommentAdmin.COMMENT', 'Comment'),
"PageTitle" => _t('CommentAdmin.PAGE', 'Page'),
"Created" => _t('CommentAdmin.DATEPOSTED', 'Date Posted')
"Name" => "Author",
"Comment" => "Comment",
"PageTitle" => "Page",
"Created" => "Date Posted"
);
$popupFields = new FieldSet(
new TextField('Name', _t('CommentAdmin.NAME', 'Name')),
new TextareaField('Comment', _t('CommentAdmin.COMMENT', 'Comment'))
new TextField("Name"),
new TextareaField("Comment", "Comment")
);
$idField = new HiddenField('ID', '', $section);
@ -83,7 +65,7 @@ class CommentAdmin extends LeftAndMain {
$fields = new FieldSet(
new TabSet( 'Root',
new Tab(_t('CommentAdmin.COMMENTS', 'Comments'),
new Tab('Comments',
new LiteralField("Title", $title),
$idField,
$table
@ -94,21 +76,21 @@ class CommentAdmin extends LeftAndMain {
$actions = new FieldSet();
if($section == 'unmoderated') {
$actions->push(new FormAction('acceptmarked', _t('CommentAdmin.ACCEPT', 'Accept')));
$actions->push(new FormAction('acceptmarked', 'Accept'));
}
if($section == 'approved' || $section == 'unmoderated') {
$actions->push(new FormAction('spammarked', _t('CommentAdmin.SPAMMARKED', 'Mark as spam')));
$actions->push(new FormAction('spammarked', 'Mark as spam'));
}
if($section == 'spam') {
$actions->push(new FormAction('hammarked', _t('CommentAdmin.MARKASNOTSPAM', 'Mark as not spam')));
$actions->push(new FormAction('hammarked', 'Mark as not spam'));
}
$actions->push(new FormAction('deletemarked', _t('CommentAdmin.DELETE', 'Delete')));
$actions->push(new FormAction('deletemarked', 'Delete'));
if($section == 'spam') {
$actions->push(new FormAction('deleteall', _t('CommentAdmin.DELETEALL', 'Delete All')));
$actions->push(new FormAction('deleteall', 'Delete All'));
}
$form = new Form($this, "EditForm", $fields, $actions);
@ -142,7 +124,7 @@ JS;
function deleteall() {
$numComments = 0;
$spam = DataObject::get('PageComment', 'PageComment.IsSpam=1');
$spam = DataObject::get('PageComment', "PageComment.IsSpam=1");
if($spam) {
$numComments = $spam->Count();
@ -151,11 +133,10 @@ JS;
$comment->delete();
}
}
$msg = sprintf(_t('CommentAdmin.DELETED', 'Deleted %s comments.'), $numComments);
echo <<<JS
$('Form_EditForm').getPageFromServer($('Form_EditForm_ID').value);
statusMessage("$msg");
statusMessage("Deleted $numComments comments.");
JS;
}
@ -191,11 +172,10 @@ JS;
user_error("No comments in $commentList could be found!", E_USER_ERROR);
}
$msg = sprintf(_t('CommentAdmin.MARKEDSPAM', 'Marked %s comments as spam.'), $numComments);
echo <<<JS
$deleteList
$('Form_EditForm').getPageFromServer($('Form_EditForm_ID').value);
statusMessage("$msg");
statusMessage("Marked $numComments comments as spam.");
JS;
}
@ -231,11 +211,10 @@ JS;
user_error("No comments in $commentList could be found!", E_USER_ERROR);
}
$msg = sprintf(_t('CommentAdmin.MARKEDNOTSPAM', 'Marked %s comments as not spam.'), $numComments);
echo <<<JS
$deleteList
$('Form_EditForm').getPageFromServer($('Form_EditForm_ID').value);
statusMessage("$msg");
statusMessage("Marked $numComments comments as not spam.");
JS;
}
@ -257,8 +236,7 @@ JS;
} else {
user_error("No comments in $commentList could be found!", E_USER_ERROR);
}
$msg = sprintf(_t('CommentAdmin.APPROVED', 'Accepted %s comments.'), $numComments);
echo <<<JS
$deleteList
$('Form_EditForm').getPageFromServer($('Form_EditForm_ID').value);

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage comments
*/
/**
* Special kind of ComplexTableField for managing comments.
* @package cms
* @subpackage comments
*/
class CommentTableField extends ComplexTableField {
protected $template = "CommentTableField";
protected $mode;
@ -143,12 +133,12 @@ class CommentTableField extends ComplexTableField {
function SearchForm() {
$searchFields = new FieldGroup(
new TextField('CommentSearch', _t('CommentTableField.SEARCH', 'Search')),
new TextField('CommentSearch', 'Search'),
new HiddenField("ctf[ID]",'',$this->mode),
new HiddenField('CommentFieldName','',$this->name)
);
$actionFields = new LiteralField('CommentFilterButton','<input type="submit" name="CommentFilterButton" value="'. _t('CommentTableField.FILTER', 'Filter') .'" id="CommentFilterButton"/>');
$actionFields = new LiteralField('CommentFilterButton','<input type="submit" class="action" name="CommentFilterButton" value="Filter" id="CommentFilterButton"/>');
$fieldContainer = new FieldGroup(
$searchFields,
@ -159,11 +149,7 @@ class CommentTableField extends ComplexTableField {
}
}
/**
* Single row of a {@link CommentTableField}
* @package cms
* @subpackage comments
*/
class CommentTableField_Item extends ComplexTableField_Item {
function HasSpamButton() {
return $this->parent()->HasSpamButton();
@ -190,4 +176,4 @@ class CommentTableField_Item extends ComplexTableField_Item {
}
}
?>
?>

View File

@ -1,11 +1,5 @@
<?php
/**
* @package cms
* @subpackage core
* A PHP diff engine
*/
// difflib.php
//
// A PHP diff engine for phpwiki.
@ -17,15 +11,8 @@
// FIXME: possibly remove assert()'s for production version?
// PHP3 does not have assert()
/**
*/
define('USE_ASSERTS', function_exists('assert'));
/**
* @package cms
* @subpackage core
* @access private
*/
class _DiffOp {
var $type;
var $orig;
@ -44,11 +31,6 @@ class _DiffOp {
}
}
/**
* @package cms
* @subpackage core
* @access private
*/
class _DiffOp_Copy extends _DiffOp {
var $type = 'copy';
@ -64,11 +46,6 @@ class _DiffOp_Copy extends _DiffOp {
}
}
/**
* @package cms
* @subpackage core
* @access private
*/
class _DiffOp_Delete extends _DiffOp {
var $type = 'delete';
@ -82,11 +59,6 @@ class _DiffOp_Delete extends _DiffOp {
}
}
/**
* @package cms
* @subpackage core
* @access private
*/
class _DiffOp_Add extends _DiffOp {
var $type = 'add';
@ -100,11 +72,6 @@ class _DiffOp_Add extends _DiffOp {
}
}
/**
* @package cms
* @subpackage core
* @access private
*/
class _DiffOp_Change extends _DiffOp {
var $type = 'change';
@ -138,8 +105,6 @@ class _DiffOp_Change extends _DiffOp {
*
* @author Geoffrey T. Dairiki
* @access private
* @package cms
* @subpackage core
*/
class _DiffEngine
{
@ -524,8 +489,6 @@ class _DiffEngine
/**
* Class representing a 'diff' between two sequences of strings.
* @package cms
* @subpackage core
*/
class Diff
{
@ -774,9 +737,7 @@ class Diff
/**
* Computes diff between sequences of strings.
* @package cms
* @subpackage core
* FIXME: bad name.
*/
class MappedDiff
extends Diff

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage assets
*/
/**
* A FormField showing a list of files
* @package cms
* @subpackage assets
*/
class FileList extends TableListField {
// bdc: added sort by Title as default behaviour
protected $folder;

View File

@ -1,26 +1,14 @@
<?php
/**
* @package cms
* @subpackage core
*/
/**
* Provides a common interface for searching, viewing and editing DataObjects.
* Extend the class to adjust functionality to your specific DataObjects.
*
* @package cms
* @subpackage core
* @var $data_type DataObject The base class
* @var $data_type_extra Array Additional DataObjects which are included in the search.
* @var $resultColumnts Array Columnnames shown in the result-table.
*/
abstract class GenericDataAdmin extends LeftAndMain {
static $allowed_actions = array(
'createRecord',
'delete',
'export',
'getResults',
'save',
'show',
);
public $filter;
@ -64,7 +52,7 @@ abstract class GenericDataAdmin extends LeftAndMain {
function __construct() {
$this->result_actions = new FieldSet(
new FormAction('export', _t('GenericDataAdmin.EXPORTCSV', 'Export as CSV'))
new FormAction("export","Export as CSV")
);
parent::__construct();
@ -128,10 +116,9 @@ abstract class GenericDataAdmin extends LeftAndMain {
* @return Form
*/
function CreationForm() {
// is this plural name used ??
$plural_name = singleton($this->stat('data_type'))->i18n_plural_name();
$singular_name = singleton($this->stat('data_type'))->i18_nsingular_name();
return new Form($this, 'CreationForm', new FieldSet(), new FieldSet(new FormAction("createRecord", _t('GenericDataAdmin.CREATE', 'Create').' '.$singular_name)));
$plural_name = singleton($this->stat('data_type'))->plural_name();
$singular_name = singleton($this->stat('data_type'))->singular_name();
return new Form($this, 'CreationForm', new FieldSet(), new FieldSet(new FormAction("createRecord", "Create {$singular_name}")));
}
/**
@ -146,14 +133,7 @@ abstract class GenericDataAdmin extends LeftAndMain {
// legacy
function ExportForm() {
return $form = new Form(
$this,
"ExportForm",
new FieldSet(
new HiddenField("csvIDs","csvIDs",$_REQUEST[csvIDs])
),
$this->result_actions
);
return $this->EditForm();
}
/**
@ -162,7 +142,7 @@ abstract class GenericDataAdmin extends LeftAndMain {
function SearchForm() {
$fields = $this->getSearchFields();
$actions = new FieldSet($action = new FormAction("getResults", _t('GenericDataAdmin.GO', 'Go')));
$actions = new FieldSet($action = new FormAction("getResults", "Go"));
$searchForm = new Form($this, "SearchForm", $fields, $actions);
$searchForm->loadDataFrom($_REQUEST);
@ -202,10 +182,10 @@ abstract class GenericDataAdmin extends LeftAndMain {
$actions = (method_exists($genericData, 'getCMSActions')) ? $genericData->getCMSActions() : new FieldSet();
if(!$actions->fieldByName('action_save')) {
$actions->push(new FormAction('save', _t('GenericDataAdmin.SAVE', 'Save'),'ajaxAction-save'));
$actions->push(new FormAction('save', 'Save','ajaxAction-save'));
}
if(!$actions->fieldByName('action_delete')) {
$actions->push(new FormAction('delete', _t('GenericDataAdmin.DELETE', 'Delete'),'ajaxAction-delete'));
$actions->push(new FormAction('delete', 'Delete','ajaxAction-delete'));
}
$required = (method_exists($genericData, 'getCMSRequiredField')) ? $genericData->getCMSRequiredField() : new RequiredFields();
@ -240,8 +220,8 @@ abstract class GenericDataAdmin extends LeftAndMain {
function Results() {
$ret = "";
$singular_name = singleton($this->stat('data_type'))->i18n_singular_name();
$plural_name = singleton($this->stat('data_type'))->i18n_plural_name();
$singular_name = singleton($this->stat('data_type'))->singular_name();
$plural_name = singleton($this->stat('data_type'))->plural_name();
if (!$this->filter) {
$this->filter = array(
"ClassName" => $this->stat('data_type')
@ -253,7 +233,7 @@ abstract class GenericDataAdmin extends LeftAndMain {
$results = $this->performSearch();
if($results) {
$name = ($results->Count() > 1) ? $plural_name : $singular_name;
$ret .= "<H2>{$results->Count()} {$name} "._t('GenericDataAdmin.FOUND', 'found:')."</H2>";
$ret .= "<H2>{$results->Count()} {$name} found:</H2>";
switch($this->stat('result_format')) {
case 'table':
@ -266,9 +246,9 @@ abstract class GenericDataAdmin extends LeftAndMain {
$ret .= $this->getResultActionsForm($results);
} else {
if($this->hasMethod('isEmptySearch') && $this->isEmptySearch()) {
$ret .='<h3>'._t('GenericDataAdmin.CHOOSECRIT', 'Please choose some search criteria and press \'Go\'.').'</h3>';
$ret .="<h3>Please choose some search criteria and press 'Go'.</h3>";
} else {
$ret .='<h3>'.sprintf(_t('GenericDataAdmin.NORESULTS', 'Sorry, no %s found by this search.'), $plural_name).'</h3>';
$ret .="<h3>Sorry, no {$plural_name} found by this search.</h3>";
}
}
return $ret;
@ -459,7 +439,7 @@ HTML;
$fileData .= implode(",",$columnData);
$fileData .= "\n";
}
HTTP::sendFileToBrowser($fileData, $fileName);
} else {
user_error("No records found", E_USER_ERROR);
@ -501,8 +481,8 @@ HTML;
}
}
}
$this->getActionUpdateJS($generic);
FormResponse::status_message(_t('GenericDataAdmin.SAVED', 'Saved'), 'good');
FormResponse::status_message('Saved', 'good');
FormResponse::update_status($generic->Status);
if (method_exists($this, "saveAfterCall")) {
@ -564,7 +544,7 @@ HTML;
// clear session data
Session::clear('currentPage');
FormResponse::status_message(_t('GenericDataAdmin.DELETEDSUCCESS', 'Successfully deleted'), 'good');
FormResponse::status_message('Successfully deleted', 'good');
FormResponse::add("$('Form_EditForm').deleteEffect();");
return FormResponse::respond();

View File

@ -1,245 +1,239 @@
<?php
/**
* @package cms
* @subpackage assets
*/
/**
* This Controller handles all operation needed for ImageEditor to work(expect for GD operations).
* @package cms
* @subpackage assets
*/
class ImageEditor extends Controller {
public $fileToEdit = "";
public $fileToEditOnlyName = "";
/**
* Includes all JS required for ImageEditor. This method requires setting
* a fileToEdit URL in POST.
*
* @return String
*/
public function index() {
Requirements::clear();
Requirements::javascript('jsparty/prototype.js');
Requirements::javascript('jsparty/scriptaculous/scriptaculous.js');
Requirements::javascript('cms/javascript/ImageEditor/Utils.js');
Requirements::javascript('cms/javascript/ImageEditor/ImageHistory.js');
Requirements::javascript('cms/javascript/ImageEditor/Image.js');
Requirements::javascript('cms/javascript/ImageEditor/ImageTransformation.js');
Requirements::javascript('cms/javascript/ImageEditor/Resizeable.js');
Requirements::javascript('cms/javascript/ImageEditor/Effects.js');
Requirements::javascript('cms/javascript/ImageEditor/Environment.js');
Requirements::javascript('cms/javascript/ImageEditor/Crop.js');
Requirements::javascript('cms/javascript/ImageEditor/Resize.js');
Requirements::javascript('cms/javascript/ImageEditor/ImageBox.js');
Requirements::javascript('cms/javascript/ImageEditor/ImageEditor.js');
Requirements::javascript('cms/javascript/ImageEditor/DocumentBody.js');
*
*/
Requirements::javascript('jsparty/loader.js');
Requirements::javascript('jsparty/behaviour.js');
Requirements::javascript('cms/javascript/LeftAndMain.js');
Requirements::css('cms/css/ImageEditor/ImageEditor.css');
class ImageEditor extends Controller {
public $fileToEdit = "";
public $fileToEditOnlyName = "";
/**
* Includes all JS required for ImageEditor. This method requires setting
* a fileToEdit URL in POST.
*
* @return String
*/
public function index() {
Requirements::clear();
Requirements::javascript('jsparty/prototype.js');
Requirements::javascript('jsparty/scriptaculous/scriptaculous.js');
Requirements::javascript('cms/javascript/ImageEditor/Utils.js');
Requirements::javascript('cms/javascript/ImageEditor/ImageHistory.js');
Requirements::javascript('cms/javascript/ImageEditor/Image.js');
Requirements::javascript('cms/javascript/ImageEditor/ImageTransformation.js');
Requirements::javascript('cms/javascript/ImageEditor/Resizeable.js');
Requirements::javascript('cms/javascript/ImageEditor/Effects.js');
Requirements::javascript('cms/javascript/ImageEditor/Environment.js');
Requirements::javascript('cms/javascript/ImageEditor/Crop.js');
Requirements::javascript('cms/javascript/ImageEditor/Resize.js');
Requirements::javascript('cms/javascript/ImageEditor/ImageBox.js');
Requirements::javascript('cms/javascript/ImageEditor/ImageEditor.js');
Requirements::javascript('cms/javascript/ImageEditor/DocumentBody.js');
if(!isset($this->requestParams['fileToEdit'])) $this->raiseError();
$fileWithPath = $this->requestParams['fileToEdit'];
$this->fileToEdit = $this->file2Origin($fileWithPath);
$this->fileToEditOnlyName = $this->urlToFilename($this->fileToEdit);
return $this->renderWith(__CLASS__);
}
/**
* Method is used for manipulating photos.
* Method requires two params set in POST
* file - file on which operation will be performed
* command - name of operation(crop|rotate|resize)
*
* Each operation requires additional parameters.
*
* @return String - JSON array with image properties (width,height,url).
*/
public function manipulate() {
$fileName = $this->requestParams['file'];
if(strpos($fileName,'?') !== false) $fileName = substr($fileName,0,strpos($fileName,'?'));
$command = $this->requestParams['command'];
$this->checkFileExists($fileName);
$fileInfo = pathinfo($fileName);
$gd = new GD($this->url2File($fileName));
switch($command) {
case 'rotate':
$angle = $_POST['angle'];
$gd = $gd->rotate($angle);
break;
case 'resize':
$imageNewWidth = $_POST['newImageWidth'];
$imageNewHeight = $_POST['newImageHeight'];
$gd = $gd->resize($imageNewWidth,$imageNewHeight);
break;
case 'crop':
$top = $_POST['top'];
$left = $_POST['left'];
$width = $_POST['width'];
$height = $_POST['height'];
$gd = $gd->crop($top,$left,$width,$height);
break;
Requirements::javascript('jsparty/loader.js');
Requirements::javascript('jsparty/behaviour.js');
Requirements::javascript('cms/javascript/LeftAndMain.js');
Requirements::css('cms/css/ImageEditor/ImageEditor.css');
if(!isset($this->requestParams['fileToEdit'])) $this->raiseError();
$fileWithPath = $this->requestParams['fileToEdit'];
$this->fileToEdit = $this->file2Origin($fileWithPath);
$this->fileToEditOnlyName = $this->urlToFilename($this->fileToEdit);
return $this->renderWith(__CLASS__);
}
$rand = md5(rand(1,100000));
$gd->writeTo('../assets/_tmp/' . $rand . '.' . $fileInfo['extension']);
return $this->getImageInfoInJSON($gd,'assets/_tmp/' . $rand . '.' . $fileInfo['extension']);
}
/**
* Method is used for saving photos.
* Method requires two params set in POST
* originalFile - this file will be replaced by second file
* editedFile - this file will replace first file.
*
* After replacing original file all thumbnails created from it are removed.
*
* @return String - Message that everything went ok.
*/
public function save() {
if(isset($this->requestParams['originalFile']) && isset($this->requestParams['editedFile'])) {
$originalFile = $this->requestParams['originalFile'];
$editedFile = $this->requestParams['editedFile'];
if(strpos($originalFile,'?') !== false) $originalFile = substr($originalFile,0,strpos($originalFile,'?'));
if($this->checkFileExists($originalFile) && $this->checkFileExists($editedFile)) {
if($editedFile != $originalFile && copy($this->url2File($editedFile),$this->url2File($originalFile))) {
$image = DataObject::get_one('File','Filename = \'' . substr($this->url2File($originalFile),3) . '\'');
$image->deleteFormattedImages();
$image->generateFormattedImage('AssetLibraryPreview');
/**
* Method is used for manipulating photos.
* Method requires two params set in POST
* file - file on which operation will be performed
* command - name of operation(crop|rotate|resize)
*
* Each operation requires additional parameters.
*
* @return String - JSON array with image properties (width,height,url).
*/
public function manipulate() {
$fileName = $this->requestParams['file'];
if(strpos($fileName,'?') !== false) $fileName = substr($fileName,0,strpos($fileName,'?'));
$command = $this->requestParams['command'];
$this->checkFileExists($fileName);
$fileInfo = pathinfo($fileName);
$gd = new GD($this->url2File($fileName));
switch($command) {
case 'rotate':
$angle = $_POST['angle'];
$gd = $gd->rotate($angle);
break;
case 'resize':
$imageNewWidth = $_POST['newImageWidth'];
$imageNewHeight = $_POST['newImageHeight'];
$gd = $gd->resize($imageNewWidth,$imageNewHeight);
break;
case 'crop':
$top = $_POST['top'];
$left = $_POST['left'];
$width = $_POST['width'];
$height = $_POST['height'];
$gd = $gd->crop($top,$left,$width,$height);
break;
}
$rand = md5(rand(1,100000));
$gd->writeTo('../assets/_tmp/' . $rand . '.' . $fileInfo['extension']);
return $this->getImageInfoInJSON($gd,'assets/_tmp/' . $rand . '.' . $fileInfo['extension']);
}
/**
* Method is used for saving photos.
* Method requires two params set in POST
* originalFile - this file will be replaced by second file
* editedFile - this file will replace first file.
*
* After replacing original file all thumbnails created from it are removed.
*
* @return String - Message that everything went ok.
*/
public function save() {
if(isset($this->requestParams['originalFile']) && isset($this->requestParams['editedFile'])) {
$originalFile = $this->requestParams['originalFile'];
$editedFile = $this->requestParams['editedFile'];
if(strpos($originalFile,'?') !== false) $originalFile = substr($originalFile,0,strpos($originalFile,'?'));
if($this->checkFileExists($originalFile) && $this->checkFileExists($editedFile)) {
if($editedFile != $originalFile && copy($this->url2File($editedFile),$this->url2File($originalFile))) {
$image = DataObject::get_one('File','Filename = \'' . substr($this->url2File($originalFile),3) . '\'');
$image->deleteFormattedImages();
$image->generateFormattedImage('AssetLibraryPreview');
} else {
$this->raiseError();
}
} else {
$this->raiseError();
}
} else {
$this->raiseError();
}
} else {
$this->raiseError();
}
return 'parent.parent.parent.statusMessage(\'Image saved\',\'good\',false);';
}
/**
* Method is invoked when ImageEditor is closed whether image is saved or not.
*
* /assets/tmp is folder where we store temporary images created during editing so
* after closing they are no necessity to keep them.
*
* @return null
*/
public function close() {
$tmpDir = '../assets/_tmp';
if(file_exists($tmpDir)) {
Filesystem::removeFolder($tmpDir);
mkdir($tmpDir, Filesystem::$folder_create_mask);
}
}
/**
* Method return JSON array containing info about image.
*
* @param gd - GD object used for retrieving info about image
* @param file
*
* @return string JSON array explained in manipulate method comment
*/
private function getImageInfoInJSON(GD $gd,$file) {
return '{"fileName":"' . $file . '","width":' . $gd->getWidth() . ',"height":' . $gd->getHeight() . '}';
}
/**
* Method converts thumbnail file name to file name of it's "parent"
*
* @param file - name of thumbnail file
*
* @return string name of parent file.
*/
private function file2Origin($file) {
$file = str_replace('_resampled/','',$file);
$file = str_replace('_resampled/','',$file);
$file = str_replace('AssetLibraryPreview-','',$file);
$this->checkFileExists($file);
return $file;
}
/**
* Method converts URL of file to file path in file system.
*
* @param url - url of file
*
* @return string path of file in file system
*/
private function url2File($url) {
return '..' . substr($url,strpos($url,'/assets'));
}
/**
* Method checks if file exists and have proper name and extension.
*
* If any of constraints aren't fulfilled method will generate error.
*
* @param url - url of file
*
* @return boolean
*/
private function checkFileExists($url) {
if(strpos($url,'?') !== false) $url = substr($url,0,strpos($url,'?'));
$pathInfo = pathinfo($url);
if(count($pathInfo) < 3) $this->raiseError();
if(!in_array($pathInfo['extension'],array('jpeg','jpg','jpe','png','gif','JPEG','JPG','JPE','PNG','GIF'))) $this->raiseError();
$path = explode('/',$pathInfo['dirname']);
if(count($path) > 1) {
$assetId = array_search('assets',$path);
if($assetId > 0) {
$realPath = '../' . implode('/',array_slice($path,$assetId,count($path) - $assetId));
if(strpos($pathInfo['basename'],'AssetLibraryPreview') !== false) {
$realPath .= '/' . substr($pathInfo['basename'],strpos($pathInfo['basename'],'-'));
} else {
$realPath .= '/' . $pathInfo['basename'];
}
} else {
$this->raiseError();
}
if(file_exists($realPath)) {
return true;
return 'parent.parent.parent.statusMessage(\'Image saved\',\'good\',false);';
}
/**
* Method is invoked when ImageEditor is closed whether image is saved or not.
*
* /assets/tmp is folder where we store temporary images created during editing so
* after closing they are no necessity to keep them.
*
* @return null
*/
public function close() {
$tmpDir = '../assets/_tmp';
if(file_exists($tmpDir)) {
Filesystem::removeFolder($tmpDir);
mkdir($tmpDir, Filesystem::$folder_create_mask);
}
}
/**
* Method return JSON array containing info about image.
*
* @param gd - GD object used for retrieving info about image
* @param file
*
* @return string JSON array explained in manipulate method comment
*/
private function getImageInfoInJSON(GD $gd,$file) {
return '{"fileName":"' . $file . '","width":' . $gd->getWidth() . ',"height":' . $gd->getHeight() . '}';
}
/**
* Method converts thumbnail file name to file name of it's "parent"
*
* @param file - name of thumbnail file
*
* @return string name of parent file.
*/
private function file2Origin($file) {
$file = str_replace('_resampled/','',$file);
$file = str_replace('_resampled/','',$file);
$file = str_replace('AssetLibraryPreview-','',$file);
$this->checkFileExists($file);
return $file;
}
/**
* Method converts URL of file to file path in file system.
*
* @param url - url of file
*
* @return string path of file in file system
*/
private function url2File($url) {
return '..' . substr($url,strpos($url,'/assets'));
}
/**
* Method checks if file exists and have proper name and extension.
*
* If any of constraints aren't fulfilled method will generate error.
*
* @param url - url of file
*
* @return boolean
*/
private function checkFileExists($url) {
if(strpos($url,'?') !== false) $url = substr($url,0,strpos($url,'?'));
$pathInfo = pathinfo($url);
if(count($pathInfo) < 3) $this->raiseError();
if(!in_array($pathInfo['extension'],array('jpeg','jpg','jpe','png','gif','JPEG','JPG','JPE','PNG','GIF'))) $this->raiseError();
$path = explode('/',$pathInfo['dirname']);
if(count($path) > 1) {
$assetId = array_search('assets',$path);
if($assetId > 0) {
$realPath = '../' . implode('/',array_slice($path,$assetId,count($path) - $assetId));
if(strpos($pathInfo['basename'],'AssetLibraryPreview') !== false) {
$realPath .= '/' . substr($pathInfo['basename'],strpos($pathInfo['basename'],'-'));
} else {
$realPath .= '/' . $pathInfo['basename'];
}
} else {
$this->raiseError();
}
if(file_exists($realPath)) {
return true;
} else {
$this->raiseError();
}
} else {
$this->raiseError();
}
} else {
$this->raiseError();
}
}
}
/**
* Method raiser error. Error is showed using statusMessage function.
*
* @param message - error message
*
*/
private function raiseError($message = "") {
echo "parent.parent.parent.statusMessage('Error: " . $message . "','bad',false);";
exit();
}
/**
* Method converts retrieves filename from url
*
* @param url
*
*/
private function urlToFilename($url) {
$path = pathinfo($url);
return $path['filename'] . "." . substr($path['extension'],0,strpos($path['extension'],'?'));
}
}
/**
* Method raiser error. Error is showed using statusMessage function.
*
* @param message - error message
*
*/
private function raiseError($message = "") {
echo "parent.parent.parent.statusMessage('Error: " . $message . "','bad',false);";
exit();
}
/**
* Method converts retrieves filename from url
*
* @param url
*
*/
private function urlToFilename($url) {
$path = pathinfo($url);
return $path['filename'] . "." . substr($path['extension'],0,strpos($path['extension'],'?'));
}
}

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage livesite
*/
/**
* Module to provide imprint statistics integration.
* @package cms
* @subpackage livesite
*/
class ImprintStats extends ViewableData {
protected static $imprintID;

View File

@ -1,34 +1,14 @@
<?php
/**
* @package cms
* @subpackage core
*/
/**
* LeftAndMain is the parent class of all the two-pane views in the CMS.
* If you are wanting to add more areas to the CMS, you can do it by subclassing LeftAndMain.
* @package cms
* @subpackage core
*/
abstract class LeftAndMain extends Controller {
static $tree_class = null;
static $extra_menu_items = array(), $removed_menu_items = array(), $replaced_menu_items = array();
static $ForceReload;
static $allowed_actions = array(
'ajaxupdateparent',
'ajaxupdatesort',
'callPageMethod',
'deleteitems',
'getitem',
'getsubtree',
'myprofile',
'printable',
'save',
'show',
);
function init() {
Director::set_site_mode('cms');
@ -39,8 +19,8 @@ abstract class LeftAndMain extends Controller {
}
// set reading lang
if(Translatable::is_enabled()) {
Translatable::choose_site_lang(i18n::get_existing_content_languages('SiteTree'));
if(Translatable::is_enabled() && !Director::is_ajax()) {
Translatable::choose_site_lang(array_keys(i18n::get_existing_content_languages('SiteTree')));
}
parent::init();
@ -110,7 +90,7 @@ abstract class LeftAndMain extends Controller {
Requirements::css('sapphire/css/Form.css');
// Requirements::javascript('cms/javascript/MemberList.js');
Requirements::javascript('cms/javascript/MemberList.js');
Requirements::javascript('cms/javascript/ForumAdmin.js');
Requirements::javascript('cms/javascript/SideTabs.js');
Requirements::javascript('cms/javascript/TaskList.js');
@ -154,9 +134,6 @@ abstract class LeftAndMain extends Controller {
Requirements::javascript('jsparty/SWFUpload/SWFUpload.js');
Requirements::javascript('cms/javascript/Upload.js');
Requirements::javascript('sapphire/javascript/HasManyFileField.js');
Requirements::css('sapphire/css/HasManyFileField.css');
Requirements::themedCSS('typography');
// For Widgets
@ -387,8 +364,8 @@ abstract class LeftAndMain extends Controller {
// getChildrenAsUL is a flexible and complex way of traversing the tree
$siteTree = $obj->getChildrenAsUL("", '
"<li id=\"record-$child->ID\" class=\"" . $child->CMSTreeClasses($extraArg) . "\">" .
"<a href=\"" . Director::link(substr($extraArg->Link(),0,-1), "show", $child->ID) . "\" class=\"" . $child->CMSTreeClasses($extraArg) . "\" title=\"' . _t('LeftAndMain.PAGETYPE','Page type: ') . '".$child->class."\" >" .
($child->TreeTitle()) .
"<a href=\"" . Director::link(substr($extraArg->Link(),0,-1), "show", $child->ID) . "\" " . (($child->canEdit() || $child->canAddChildren()) ? "" : "class=\"disabled\"") . " title=\"' . _t('LeftAndMain.PAGETYPE','Page type: ') . '".$child->class."\" >" .
($child->TreeTitle()) .
"</a>"
'
,$this, true);
@ -554,6 +531,12 @@ JS;
FormResponse::add("$('Form_EditForm').getPageFromServer($record->ID);");
}
if( ($record->class != 'VirtualPage') && $originalURLSegment != $record->URLSegment) {
$message .= sprintf(_t('LeftAndMain.CHANGEDURL'," Changed URL to '%s'"),$record->URLSegment);
FormResponse::add("\$('Form_EditForm').elements.URLSegment.value = \"$record->URLSegment\";");
FormResponse::add("\$('Form_EditForm_StageURLSegment').value = \"{$record->URLSegment}\";");
}
// After reloading action
if($originalStatus != $record->Status) {
$message .= sprintf(_t('LeftAndMain.STATUSTO'," Status changed to '%s'"),$record->Status);
@ -561,12 +544,6 @@ JS;
$record->write();
if( ($record->class != 'VirtualPage') && $originalURLSegment != $record->URLSegment) {
$message .= sprintf(_t('LeftAndMain.CHANGEDURL'," Changed URL to '%s'"),$record->URLSegment);
FormResponse::add("\$('Form_EditForm').elements.URLSegment.value = \"$record->URLSegment\";");
FormResponse::add("\$('Form_EditForm_StageURLSegment').value = \"{$record->URLSegment}\";");
}
// If the 'Save & Publish' button was clicked, also publish the page
if (isset($urlParams['publish']) && $urlParams['publish'] == 1) {
$this->performPublish($record);
@ -871,7 +848,7 @@ JS;
self::$application_logo_text = "";
}
function LogoStyle() {
return "background: url(" . self::$application_logo . ") no-repeat; " . self::$application_logo_style;
return "background-image: url(" . self::$application_logo . ") no-repeat; " . self::$application_logo_style;
}
/**

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage security
*/
/**
* Form field showing a list of members.
* @package cms
* @subpackage security
*/
class MemberList extends FormField {
protected $members;
protected $hidePassword;
@ -251,16 +241,16 @@ class MemberList extends FormField {
function OrderByField() {
$fields = new FieldGroup( new DropdownField('MemberListOrderByField','', array(
'FirstName' => _t('MemberList.FN', 'FirstName'),
'Surname' => _t('MemberList.SN', 'Surname'),
'Email' => _t('MemberList.EMAIL', 'Email')
'FirstName' => 'FirstName',
'Surname' => 'Surname',
'Email' => 'Email'
)),
new DropdownField('MemberListOrderByOrder','',array(
'ASC' => _t('MemberList.ASC', 'Ascending'),
'DESC' => _t('MemberList.DESC', 'Descending')
'ASC' => 'Ascending',
'DESC' => 'Descending'
)));
$field = new FieldGroup( new LabelField(_t('MemberList.ORDERBY', 'Order by')), $fields );
$field = new FieldGroup( new LabelField( 'Order by' ), $fields );
return $field->FieldHolder();
}
@ -268,7 +258,7 @@ class MemberList extends FormField {
$groups = DataObject::get('Group');
$groupArray = array( '' => _t('MemberList.ANYGROUP', 'Any group'));
$groupArray = array( '' => 'Any group' );
foreach( $groups as $group )
$groupArray[$group->ID] = $group->Title;

View File

@ -1,10 +1,4 @@
<?php
/**
* @package cms
* @subpackage security
*/
/**
* Enhances {ComplexTableField} with the ability to list groups and given members.
* It is based around groups, so it deletes Members from a Group rather than from the entire system.
@ -17,25 +11,16 @@
* - members of a provided group
* - all members
* - members based on a search-query
* @package cms
* @subpackage security
*/
class MemberTableField extends ComplexTableField {
protected $members;
protected $hidePassword;
protected $pageSize;
protected $detailFormValidator;
protected $group;
protected $template = "MemberTableField";
public $popupClass = 'MemberTableField_Popup';
static $data_class = "Member";
protected $permissions = array(
@ -78,9 +63,9 @@ class MemberTableField extends ComplexTableField {
array_push( $this->permissions, $permission );
$fieldList = array(
"FirstName" => _t('MemberTableField.FIRSTNAME', 'Firstname'),
"Surname" => _t('MemberTableField.SURNAME', 'Surname'),
"Email" => _t('MemberTableField.EMAIL', 'Email')
"FirstName" => "Firstname",
"Surname" => "Surname",
"Email" => "Email"
);
$csvFieldList = $fieldList;
@ -93,11 +78,9 @@ class MemberTableField extends ComplexTableField {
}
if(!$hidePassword) {
$fieldList["SetPassword"] = "Password";
$fieldList["Password"] = "Password";
}
// $detailFormFields = singleton(Object::getCustomClass($this->stat("data_class")))->getCMSFields();
if(isset($_REQUEST['ctf']['childID']) && $memberID = $_REQUEST['ctf']['childID']) {
$SNG_member = DataObject::get_by_id($this->stat("data_class"),$_REQUEST['ctf']['childID']);
} else {
@ -115,23 +98,23 @@ class MemberTableField extends ComplexTableField {
$this->hidePassword = $hidePassword;
parent::__construct($controller, $name, $sourceClass, $fieldList);
parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields);
Requirements::javascript('cms/javascript/MemberTableField.js');
Requirements::javascript("cms/javascript/MemberTableField.js");
// construct the filter and sort
if(isset($_REQUEST['MemberOrderByField'])) {
$this->sourceSort = '`' . Convert::raw2sql($_REQUEST['MemberOrderByField']) . '`' . Convert::raw2sql( $_REQUEST['MemberOrderByOrder'] );
$this->sourceSort = "`" . Convert::raw2sql($_REQUEST['MemberOrderByField']) . "`" . Convert::raw2sql( $_REQUEST['MemberOrderByOrder'] );
}
// search
$search = isset($_REQUEST['MemberSearch']) ? Convert::raw2sql($_REQUEST['MemberSearch']) : null;
if(!empty($_REQUEST['MemberSearch'])) {
//$this->sourceFilter[] = "( `Email` LIKE '%$search%' OR `FirstName` LIKE '%$search%' OR `Surname` LIKE '%$search%' )";
$sourceF = '( ';
$sourceF = "( ";
foreach( $fieldList as $k => $v )
$sourceF .= '`$k` LIKE '%$search%' OR ';
$this->sourceFilter[] = substr( $sourceF, 0, -3 ) . ')';
$sourceF .= "`$k` LIKE '%$search%' OR ";
$this->sourceFilter[] = substr( $sourceF, 0, -3 ) . ")";
}
// filter by groups
@ -145,6 +128,7 @@ class MemberTableField extends ComplexTableField {
}
$this->sourceJoin = " INNER JOIN `Group_Members` ON `MemberID`=`Member`.`ID`";
$this->setFieldListCsv( $csvFieldList );
}
@ -161,37 +145,78 @@ class MemberTableField extends ComplexTableField {
return "{$this->PopupBaseLink()}&methodName=add";
}
function DetailForm() {
$ID = Convert::raw2xml(isset($_REQUEST['ctf']['ID'])
? $_REQUEST['ctf']['ID']
: '');
$childID = isset($_REQUEST['ctf']['childID']) ? Convert::raw2xml($_REQUEST['ctf']['childID']) : 0;
$childClass = Convert::raw2xml($_REQUEST['fieldName']);
$methodName = isset($_REQUEST['methodName']) ? $_REQUEST['methodName'] : '';
if($methodName == "add") {
$parentIdName = $this->getParentIdName($childClass,$this->getParentClass());
if(!$parentIdName) {
user_error("ComplexTableField::DetailForm() Dataobject does not seem to have an 'has-one'-relationship", E_USER_WARNING);
return;
}
$this->detailFormFields->push(new HiddenField('parentClass'," ",$this->getParentClass()));
}
// the ID field confuses the Controller-logic in finding the right view for ReferencedField
$this->detailFormFields->removeByName('ID');
$this->detailFormFields->push(new HiddenField("ctf[ID]"," ",$ID));
// add a namespaced ID instead thats "converted" by saveComplexTableField()
$this->detailFormFields->push(new HiddenField("ctf[childID]","",$childID));
$this->detailFormFields->push(new HiddenField("ClassName","",$this->sourceClass));
$form = new MemberTableField_Popup($this, "DetailForm", $this->detailFormFields, $this->sourceClass, $methodName == "show", $this->detailFormValidator);
if (is_numeric($childID)) {
if ($methodName == "show" || $methodName == "edit") {
$childData = DataObject::get_by_id($this->sourceClass, $childID);
$form->loadDataFrom($childData);
}
}
if ($methodName == "show") {
$form->makeReadonly();
}
return $form;
}
function SearchForm() {
$searchFields = new FieldGroup(
new TextField('MemberSearch', _t('MemberTableField.SEARCH', 'Search')),
new TextField('MemberSearch', 'Search'),
new HiddenField("ctf[ID]",'',$this->group->ID),
new HiddenField('MemberFieldName','',$this->name),
new HiddenField('MemberDontShowPassword','',$this->hidePassword)
);
$orderByFields = new FieldGroup(
new LabelField(_t('MemberTableField.ORDERBY', 'Order by')),
new LabelField('Order by'),
new FieldSet(
new DropdownField('MemberOrderByField','', array(
'FirstName' => _t('MemberTableField.FIRSTNAME', 'FirstName'),
'Surname' => _t('MemberTableField.SURNAME', 'Surname'),
'Email' => _t('MemberTableField.EMAIL', 'Email')
'FirstName' => 'FirstName',
'Surname' => 'Surname',
'Email' => 'Email'
)),
new DropdownField('MemberOrderByOrder','',array(
'ASC' => _t('MemberTableField.ASC', 'Ascending'),
'DESC' => _t('MemberTableField.DESC', 'Descending')
'ASC' => 'Ascending',
'DESC' => 'Descending'
))
)
);
$groups = DataObject::get('Group');
$groupArray = array('' => _t('MemberTableField.ANYGROUP', 'Any group'));
$groupArray = array('' => 'Any group');
foreach( $groups as $group ) {
$groupArray[$group->ID] = $group->Title;
}
$groupFields = new DropdownField('MemberGroup', _t('MemberTableField.FILTERBYGROUP', 'Filter by group'),$groupArray );
$groupFields = new DropdownField('MemberGroup','Filter by group',$groupArray );
$actionFields = new LiteralField('MemberFilterButton','<input type="submit" class="action" name="MemberFilterButton" value="'._t('MemberTableField.FILTER', 'Filter').'" id="MemberFilterButton"/>');
$actionFields = new LiteralField('MemberFilterButton','<input type="submit" class="action" name="MemberFilterButton" value="Filter" id="MemberFilterButton"/>');
$fieldContainer = new FieldGroup(
$searchFields,
@ -212,7 +237,7 @@ class MemberTableField extends ComplexTableField {
unset($data['ID']);
if(!is_numeric($data['ctf']['ID'])) {
FormResponse::status_messsage(_t('MemberTableField.ADDINGFIELD', 'Adding failed'), 'bad');
FormResponse::status_messsage('Adding failed', 'bad');
}
$className = $this->stat('data_class');
@ -240,8 +265,8 @@ class MemberTableField extends ComplexTableField {
* Remove member from group rather than from the database
*/
function delete() {
$groupID = Convert::raw2sql($_REQUEST['ctf']['ID']);
$memberID = Convert::raw2sql($_REQUEST['ctf']['childID']);
$groupID = Convert::raw2sql($_REQUEST["ctf"]["ID"]);
$memberID = Convert::raw2sql($_REQUEST["ctf"]["childID"]);
if(is_numeric($groupID) && is_numeric($memberID)) {
$member = DataObject::get_by_id('Member', $memberID);
$member->Groups()->remove($groupID);
@ -261,11 +286,11 @@ class MemberTableField extends ComplexTableField {
* #################################
*/
function getParentClass() {
return 'Group';
return "Group";
}
function getParentIdName($childClass,$parentClass){
return 'GroupID';
return "GroupID";
}
@ -277,7 +302,7 @@ class MemberTableField extends ComplexTableField {
function memberListWithGroupID($members, $group) {
$newMembers = new DataObjectSet();
foreach($members as $member) {
$newMembers->push($member->customise(array('GroupID' => $group->ID)));
$newMembers->push($member->customise(array("GroupID" => $group->ID)));
}
return $newMembers;
}
@ -301,12 +326,12 @@ class MemberTableField extends ComplexTableField {
foreach($this->FieldList() as $fieldName=>$fieldTitle) {
$fields->push(new TextField($fieldName));
}
$fields->push(new HiddenField('ctf[ID]', null, $this->group->ID));
$fields->push(new HiddenField("ctf[ID]", null, $this->group->ID));
return new TabularStyle(new Form($this->controller,'AddRecordForm',
$fields,
new FieldSet(
new FormAction('addtogroup', _t('MemberTableField.ADD','Add'))
new FormAction("addtogroup", _t('MemberTableField.ADD','Add'))
)
));
}
@ -323,7 +348,7 @@ class MemberTableField extends ComplexTableField {
}
// Setup limits
$limitClause = '';
$limitClause = "";
if(isset($_REQUEST['ctf'][$this->Name()]['start']) && is_numeric($_REQUEST['ctf'][$this->Name()]['start'])) {
$limitClause = ($_REQUEST['ctf'][$this->Name()]['start']) . ", {$this->pageSize}";
} else {
@ -339,7 +364,7 @@ class MemberTableField extends ComplexTableField {
$this->sourceFilter,
$this->sourceSort
);
$this->unpagedSourceItems = $this->group->Members( '', '', $this->sourceFilter, $this->sourceSort );
$this->unpagedSourceItems = $this->group->Members( "", "", $this->sourceFilter, $this->sourceSort );
$this->totalCount = ($this->sourceItems) ? $this->sourceItems->TotalItems() : 0;
return $this->sourceItems;
}
@ -350,42 +375,40 @@ class MemberTableField extends ComplexTableField {
}
}
/**
* Popup window for {@link MemberTableField}.
* @package cms
* @subpackage security
*/
class MemberTableField_Popup extends ComplexTableField_Popup {
function __construct($controller, $name, $fields, $sourceClass, $readonly=false, $validator = null) {
// DO NOT CHANGE THE ORDER OF THESE JS FILES. THESE ARE ONLY REQUIRED FOR THIS INSTANCE !!!11onetwo
parent::__construct($controller, $name, $fields, $sourceClass, $readonly, $validator);
Requirements::javascript('cms/javascript/MemberTableField.js');
Requirements::javascript('cms/javascript/MemberTableField_popup.js');
Requirements::javascript("cms/javascript/MemberTableField.js");
Requirements::javascript("cms/javascript/MemberTableField_popup.js");
}
function saveComplexTableField() {
$id = (isset($_REQUEST['ctf']['childID'])) ? Convert::raw2sql($_REQUEST['ctf']['childID']) : false;
$id = Convert::raw2sql($_REQUEST['ctf']['childID']);
if (is_numeric($id)) {
$childObject = DataObject::get_by_id($this->sourceClass, $id);
} else {
$childObject = new $this->sourceClass();
$this->fields->removeByName('ID');
}
$this->saveInto($childObject);
$childObject->write();
// add member to current group
$childObject->Groups()->add($_REQUEST['GroupID']);
$childObject->Groups()->add($_REQUEST['ctf']['ID']);
// if ajax-call in an iframe, close window by javascript, else redirect to referrer
if(!Director::is_ajax()) {
Director::redirect(substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],'?')));
Director::redirect(substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],"?")));
}
}
}
?>
?>

View File

@ -1,14 +1,6 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Create a process in session which is incremented to calls from the client
* @package cms
* @subpackage newsletter
*/
class BatchProcess extends Object {
@ -54,7 +46,7 @@ class BatchProcess extends Object {
$this->id = self::generateID();
if( !$this->objects || count( $this->objects ) === 0 )
return $this->complete();
return $this->complete();
return $this->next();
}
@ -76,11 +68,6 @@ class BatchProcess extends Object {
}
}
/**
* Controller for calling the batch processes via Ajax.
* @package cms
* @subpackage newsletter
*/
class BatchProcess_Controller extends Controller {
function next() {
@ -88,13 +75,13 @@ class BatchProcess_Controller extends Controller {
$processID = $this->urlParams['ID'];
if( !$processID ) {
return _t('BatchProcess_Controller.ERROR', 'ERROR: Could not continue process');
return "ERROR: Could not continue process";
}
$process = unserialize(Session::get('BatchProcesses.' . ($this->urlParams['ID'] - 1)));
if( !$process ) {
return _t('BatchProcess_Controller.ERROR', 'ERROR:Could not continue process');
return "ERROR:Could not continue process";
}
if( $this->urlParams['Batch'] )

View File

@ -1,15 +1,4 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Form field showing a list of bounced addresses
* @package cms
* @subpackage newsletter
*/
class BouncedList extends FormField {
protected $nlType;

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Single newsletter instance. Each Newsletter belongs to a NewsletterType.
* @package cms
* @subpackage newsletter
*/
class Newsletter extends DataObject {
/**
@ -24,18 +14,18 @@ class Newsletter extends DataObject {
$sent_status_report = $this->renderWith("Newsletter_SentStatusReport");
$ret = new FieldSet(
new TabSet("Root",
$mailTab = new Tab(_t('Newsletter.NEWSLETTER', 'Newsletter'),
new TextField("Subject", _t('Newsletter.SUBJECT', 'Subject'), $this->Subject),
new HtmlEditorField("Content", _t('Newsletter.CONTENT', 'Content'))
$mailTab = new Tab("Newsletter",
new TextField("Subject", "Subject", $this->Subject),
new HtmlEditorField("Content", "Content")
),
$sentToTab = new Tab(_t('Newsletter.SENTREPORT', 'Sent Status Report'),
$sentToTab = new Tab("Sent Status Report",
new LiteralField("Sent Status Report", $sent_status_report)
)
)
);
if( $this->Status != 'Draft' ) {
$mailTab->push( new ReadonlyField("SendDate", _t('Newsletter.SENTAT', 'Sent at'), $this->SendDate) );
$mailTab->push( new ReadonlyField("SendDate", "Sent at", $this->SendDate) );
}
@ -128,11 +118,6 @@ class Newsletter extends DataObject {
}
}
/**
* Database record for recipients that have had the newsletter sent to them.
* @package cms
* @subpackage newsletter
*/
class Newsletter_SentRecipient extends DataObject {
/**
* The DB schema for Newsletter_SentRecipient.
@ -151,12 +136,6 @@ class Newsletter_SentRecipient extends DataObject {
"Member" => "Member",
);
}
/**
* Single recipient of the newsletter
* @package cms
* @subpackage newsletter
*/
class Newsletter_Recipient extends DataObject {
static $db = array(
"ParentID" => "Int",
@ -166,11 +145,6 @@ class Newsletter_Recipient extends DataObject {
);
}
/**
* Email object for sending newsletters.
* @package cms
* @subpackage newsletter
*/
class Newsletter_Email extends Email_Template {
protected $nlType;

View File

@ -1,15 +1,4 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Batch process for sending newsletters.
* @package cms
* @subpackage newsletter
*/
class NewsletterEmailProcess extends BatchProcess {
protected $subject;
@ -22,7 +11,7 @@ class NewsletterEmailProcess extends BatchProcess {
/**
* Set up a Newsletter Email Process
*
* @param $recipients DataObjectSet The recipients of this newsletter
* @recipients A DataObject containing the addresses of the recipients of this newsletter
*/
function __construct( $subject, $body, $from, $newsletter, $nlType, $messageID = null, $recipients) {
@ -57,35 +46,32 @@ class NewsletterEmailProcess extends BatchProcess {
/**
* Email Blacklisting Support
*/
if($member->BlacklistedEmail && Email_BlackList::isBlocked($address)){
$bounceRecord = new Email_BounceRecord();
$bounceRecord->BounceEmail = $member->Email;
$bounceRecord->BounceTime = date("Y-m-d H:i:s",time());
$bounceRecord->BounceMessage = "BlackListed Email";
$bounceRecord->MemberID = $member->ID;
$bounceRecord->write();
if($member->BlacklistedEmail && Email_BlackList::isBlocked($address)){
$bounceRecord = new Email_BounceRecord();
$bounceRecord->BounceEmail = $member->Email;
$bounceRecord->BounceTime = date("Y-m-d H:i:s",time());
$bounceRecord->BounceMessage = "BlackListed Email";
$bounceRecord->MemberID = $member->ID;
$bounceRecord->write();
// Log the blacklist for this specific Newsletter
$newsletter = new Newsletter_SentRecipient();
$newsletter->Email = $address;
$newsletter->MemberID = $member->ID;
$newsletter->Result = 'BlackListed';
$newsletter->ParentID = $this->newsletter->ID;
$newsletter->write();
} else {
$e = new Newsletter_Email($this->nlType);
// Log the blacklist for this specific Newsletter
$newsletter = new Newsletter_SentRecipient();
$newsletter->Email = $address;
$newsletter->MemberID = $member->ID;
$newsletter->Result = 'BlackListed';
$newsletter->ParentID = $this->newsletter->ID;
$newsletter->write();
} else {
$e = new Newsletter_Email($this->nlType);
$e->setBody( $this->body );
$e->setSubject( $this->subject );
$e->setFrom( $this->from );
$e->setTemplate( $this->nlType->Template );
if(method_exists($member, "getNameForEmail"))
$nameForEmail = $member->getNameForEmail();
$e->populateTemplate( array( 'Member' => $member, 'FirstName' => $member->FirstName, 'NameForEmail'=>$nameForEmail ) );
$this->sendToAddress( $e, $address, $this->messageID, $member);
}
$e->populateTemplate( array( 'Member' => $member, 'FirstName' => $member->FirstName ) );
$this->sendToAddress( $e, $address, $this->messageID, $member);
}
}
}

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Simple form field shown when the NewsletterAdmin first loads.
* @package cms
* @subpackage newsletter
*/
class NewsletterList extends FormField {
function __construct($name, $mailtype, $status = "Draft") {
if(is_object($mailtype)) $this->mailType = $mailtype;
@ -52,4 +42,4 @@ class NewsletterList extends FormField {
}
}
?>
?>

View File

@ -1,16 +1,5 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Represents a type of newsletter, for example the weekly products update.
* The NewsletterType is associated with a recipient list and a bunch of Newsletter objects, which are each either Sent or Draft.
* @package cms
* @subpackage newsletter
*/
class NewsletterType extends DataObject {
static $db = array(
@ -54,7 +43,7 @@ class NewsletterType extends DataObject {
if($this->ID){
$group = $this->Group();
if($group->Title != "$this->Title"){
$group->Title = _t('NewsletterType.MAILINGLIST', 'Mailing List:').' '. $this->Title;
$group->Title = "Mailing List: " . $this->Title;
// Otherwise the code would have mailing list in it too :-(
$group->Code = SiteTree::generateURLSegment($this->Title);
$group->write();
@ -73,20 +62,20 @@ class NewsletterType extends DataObject {
}
$fields = new FieldSet(
new TextField("Title", _t('NewsletterType.NEWSLETTERTYPE', 'Newsletter Type')),
new TextField("FromEmail", _t('NewsletterType.SENDFROM', 'Send newsletters from')),
new TextField("Title", "Newsletter Type"),
new TextField("FromEmail", "Send newsletters from"),
new TabSet("Root",
new Tab(_t('NewsletterType.DRAFTS', 'Drafts'),
$draftList = new NewsletterList("Draft", $this, _t('NewsletterType.DRAFT', 'Draft'))
new Tab("Drafts",
$draftList = new NewsletterList("Draft", $this, "Draft")
),
new TabSet('Sent',
new Tab(_t('NewsletterType.SENT', 'Sent'),
$sendList = new NewsletterList("Send", $this, _t('NewsletterType.SEND', 'Send'))
new TabSet("Sent",
new Tab("Sent",
$sendList = new NewsletterList("Send", $this, "Send")
),
new Tab(_t('NewsletterType.UNSUBSCRIBED', 'Unsubscribed'),
new Tab("Unsubscribed",
$unsubscribedList = new UnsubscribedList("Unsubscribed", $this)
),
new Tab(_t('NewsletterType.BOUNCED', 'Bounced'),
new Tab("Bounced",
$bouncedList = new BouncedList("Bounced", $this )
)
)
@ -96,15 +85,15 @@ class NewsletterType extends DataObject {
if($this->GroupID) {
$fields->addFieldToTab('Root',
new TabSet("Recipients",
new Tab( _t('NewsletterType.RECIPIENTS', 'Recipients'),
new Tab( "Recipients",
$recipients = new MemberTableField(
$this,
"Recipients",
$group
)
),
new Tab( _t('NewsletterType.IMPORT', 'Import'),
$importField = new RecipientImportField("ImportFile", _t('NewsletterType.IMPORTFROM', 'Import from file'), $group )
new Tab( "Import",
$importField = new RecipientImportField("ImportFile","Import from file", $group )
)
)
);
@ -115,7 +104,7 @@ class NewsletterType extends DataObject {
}
$fields->addFieldToTab('Root',
new Tab(_t('NewsletterType.TEMPLATE', 'Template'),
new Tab("Template",
$templates = new TemplateList("Template","Template", $this->Template, NewsletterAdmin::template_path())
)
);

View File

@ -1,14 +1,6 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Displays a field for importing recipients.
* @package cms
* @subpackage newsletter
* Displays a file upload field.
*/
class RecipientImportField extends FormField {
@ -182,11 +174,6 @@ class RecipientImportField extends FormField {
}
}
/**
* Single cell of the recipient import field
* @package cms
* @subpackage newsletter
*/
class RecipientImportField_Cell extends ViewableData {
protected $value;
@ -199,11 +186,6 @@ class RecipientImportField_Cell extends ViewableData {
}
}
/**
* Upload form that appears in the iframe
* @package cms
* @subpackage newsletter
*/
class RecipientImportField_UploadForm extends Form {
function import( $data, $form ) {
$id = $data['ID'];
@ -226,7 +208,7 @@ class RecipientImportField_UploadForm extends Form {
}
function isValidCSV( $file ) {
return preg_match( '/.*\.csv$/i', $file['name'] ) > 0;
return preg_match( '/.*\.csv$/', $file['name'] ) > 0;
}
function confirm( $data, $form ) {

View File

@ -1,15 +1,4 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Page type for creating a page that contains a form that visitors can use to subscript to a newsletter.
* @package cms
* @subpackage newsletter
*/
class SubscribeForm extends UserDefinedForm {
static $add_action = "a newsletter subscription form";
@ -29,9 +18,9 @@ class SubscribeForm extends UserDefinedForm {
'Subject' => 'Varchar'
);
static $defaults = array(
"OnCompleteMessage" => "<p>Thanks, you have been added to our mailing list.</p>",
);
static $defaults = array(
"OnCompleteMessage" => "<p>Thanks, you have been added to our mailing list.</p>",
);
static $has_many = array(
'Newsletters' => 'NewsletterType'
@ -64,19 +53,14 @@ class SubscribeForm extends UserDefinedForm {
if( !empty( $typeValue ) ) {
$newField->prepopulate( $typeValue );
}
$newField->ParentID = $this->ID;
$newField->setField('ID', "new-" . $count);
$newField->Sort = $count;
$newField->write();
$f->addWithoutWrite($newField);
$count++;
}
}
public function write($showDebug = false, $forceInsert = false, $forceWrite = false) {
$isNew = (!$this->ID);
parent::write($showDebug, $forceInsert, $forceWrite);
if($isNew) $this->addDefaultFields();
}
public function Newsletters() {
$components = $this->getComponents('Newsletters');
@ -164,11 +148,6 @@ class SubscribeForm extends UserDefinedForm {
}
}
/**
* Email for sending subscribe form submissions.
* @package cms
* @subpackage newsletter
*/
class SubscribeForm_SubscribeEmail extends Email_Template {
protected $to = '$Email';
protected $subject = '$Subject';
@ -176,14 +155,10 @@ class SubscribeForm_SubscribeEmail extends Email_Template {
protected $from = '';
}
/**
* Controller for the SubscribeForm page
* @package cms
* @subpackage newsletter
*/
class SubscribeForm_Controller extends UserDefinedForm_Controller {
function process( $data, $form ) {
// Add the user to the mailing list
$member = Object::create("Member");
@ -192,6 +167,7 @@ class SubscribeForm_Controller extends UserDefinedForm_Controller {
// map the editables to the data
foreach( $this->Fields() as $editable ) {
$field = $editable->CustomParameter;
if( !$field )
continue;
@ -201,14 +177,14 @@ class SubscribeForm_Controller extends UserDefinedForm_Controller {
// if( $member->hasField( $field ) )
$member->$field = $data[$editable->Name];
}
// need to write the member record before adding the user to groups
$member->write();
$newsletters = array();
// Add member to the selected newsletters
if( isset($data['Newsletters'])) foreach( $data['Newsletters'] as $listID ) {
if( $data['Newsletters'] ) foreach( $data['Newsletters'] as $listID ) {
if( !is_numeric( $listID ) )
continue;
@ -262,9 +238,13 @@ class SubscribeForm_Controller extends UserDefinedForm_Controller {
$newsletters = array();
// Debug::show($newsletterList);
// get the newsletter types to display on the form
foreach( $newsletterList as $newsletter )
$newsletters[$newsletter->ID] = $newsletter->Title;
$newsletters[] = $newsletter;
// Debug::show( $newsletters );
$form->Fields()->push( new CheckboxSetField( 'Newsletters', 'Subscribe to lists', $newsletters ) );

View File

@ -1,14 +1,6 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Subclass of DropdownField for showing a list of the newsletter templates available.
* @package cms
* @subpackage newsletter
* This should extend DropdownField
*/
class TemplateList extends DropdownField {
@ -20,7 +12,7 @@ class TemplateList extends DropdownField {
}
private function getTemplates() {
$templates = array( "" => _t('TemplateList.NONE', 'None') );
$templates = array( "" => "None" );
$absPath = Director::baseFolder();
if( $absPath{strlen($absPath)-1} != "/" )

View File

@ -1,15 +1,7 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Create a form that a user can use to unsubscribe from a mailing list
* @package cms
* @subpackage newsletter
*/
* Create a form that a user can use to unsubscribe from a mailing list
*/
class Unsubscribe_Controller extends Page_Controller {
function __construct($data = null) {
}
@ -45,7 +37,7 @@ class Unsubscribe_Controller extends Page_Controller {
}
if($this->urlParams['Email'] == "done")
$listForm->sessionMessage(_t('Unsubscribe.SUCCESS', 'Thank you. You have been removed from the selected groups'), "good");
$listForm->sessionMessage("Thank you. You have been removed from the selected groups", "good");
return $this->customise( array( 'Content' => $listForm->forTemplate() ) )->renderWith('Page');
}
@ -101,7 +93,7 @@ class Unsubscribe_Controller extends Page_Controller {
$url = "unsubscribe/done/".$member->Email."/".$nlTypeTitles;
Director::redirect($url);
} else {
$form->addErrorMessage('MailingLists', _t('Unsubscribe.NOMLSELECTED', 'You need to select at least one mailing list to unsubscribe from.'), 'bad');
$form->addErrorMessage('MailingLists', 'You need to select at least one mailing list to unsubscribe from.', 'bad');
Director::redirectBack();
}
}
@ -114,12 +106,6 @@ class Unsubscribe_Controller extends Page_Controller {
}
}
/**
* 2nd step form for the Unsubcribe page.
* The form will list all the mailing lists that the user is subscribed to.
* @package cms
* @subpackage newsletter
*/
class Unsubscribe_MailingListForm extends Form {
protected $memberEmail;
@ -135,15 +121,15 @@ class Unsubscribe_MailingListForm extends Form {
$lists = $this->getMailingLists( $member );
if( $lists ) {
$fields->push( new LabelField( _t('Unsubcribe.SUBSCRIBEDTO', 'You are subscribed to the following lists:')) );
$fields->push( new LabelField( 'You are subscribed to the following lists:' ) );
foreach( $lists as $list ) {
$fields->push( new CheckboxField( "MailingLists[{$list->ID}]", $list->Title ) );
}
$actions->push( new FormAction('unsubscribe', _t('Unsubscribe.UNSUBSCRIBE', 'Unsubscribe') ) );
$actions->push( new FormAction('unsubscribe', 'Unsubscribe' ) );
} else {
$fields->push( new LabelField(sprintf(_t('Unsubscribe.NOTSUBSCRIBED', 'I\'m sorry, but %s doesn\'t appear to be in any of our mailing lists.'), $email) ) );
$fields->push( new LabelField( "I'm sorry, but $email doesn't appear to be in any of our mailing lists." ) );
}
parent::__construct( $controller, $name, $fields, $actions );
@ -159,22 +145,16 @@ class Unsubscribe_MailingListForm extends Form {
}
}
/**
* 1st step form for the Unsubcribe page.
* The form will let people enter an email address and press a button to continue.
* @package cms
* @subpackage newsletter
*/
class Unsubscribe_EmailAddressForm extends Form {
function __construct( $controller, $name ) {
$fields = new FieldSet(
new EmailField( 'Email', _t('Unsubscribe.EMAILADDR', 'Email address') )
new EmailField( 'Email', 'Email address' )
);
$actions = new FieldSet(
new FormAction( 'showlists', _t('Unsubscribe.SHOWLISTS', 'Show lists') )
new FormAction( 'showlists', 'Show lists' )
);
parent::__construct( $controller, $name, $fields, $actions );
@ -185,12 +165,6 @@ class Unsubscribe_EmailAddressForm extends Form {
}
}
/**
* Final stage form for the Unsubcribe page.
* The form just gives you a success message.
* @package cms
* @subpackage newsletter
*/
class Unsubscribe_Successful extends Form {
function __construct($controller, $name){
$fields = new FieldSet();
@ -199,7 +173,7 @@ class Unsubscribe_Successful extends Form {
}
function setSuccessfulMessage($email, $newsletterTypes) {
Requirements::themedCSS("form");
$this->setMessage(sprintf(_t('Unsubscribe.REMOVESUCCESS', 'Thank you. %s will no longer receive the %s.'), $email, $newsletterTypes), "good");
$this->setMessage("Thank you. $email will no longer receive the $newsletterTypes.", "good");
}
}

View File

@ -1,15 +1,7 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Displays a list of all members that have unsubscribed from the list
* @package cms
* @subpackage newsletter
*/
* Displays a list of all members that have unsubscribed from the list
*/
class UnsubscribedList extends FormField {
protected $nlType;

View File

@ -1,44 +1,9 @@
<?php
/**
* @package cms
* @subpackage newsletter
*/
/**
* Newsletter administration section
* @package cms
* @subpackage newsletter
*/
class NewsletterAdmin extends LeftAndMain {
static $subitem_class = "Member";
static $template_path = null; // defaults to (project)/templates/email
static $allowed_actions = array(
'adddraft',
'addgroup',
'addtype',
'autocomplete',
'displayfilefield',
'getformcontent',
'getsentstatusreport',
'getsitetree',
'memberblacklisttoggle',
'newmember',
'remove',
'removebouncedmember',
'removenewsletter',
'save',
'savemember',
'savenewsletter',
'sendnewsletter',
'showdrafts',
'showmailtype',
'shownewsletter',
'showrecipients',
'showsent',
);
public function init() {
// Check permissions
@ -258,13 +223,14 @@ class NewsletterAdmin extends LeftAndMain {
if(isset($mailType) && is_object($mailType) && $mailType->GroupID) {
$group = DataObject::get_one("Group", "ID = $mailType->GroupID");
}
if(isset($mailType)&&$mailType) {
if(isset($mailType)) {
$fields = new FieldSet(
new TabSet("Root",
new Tab(_t('NewsletterAdmin.NLSETTINGS', 'Newsletter Settings'),
new Tab("Newsletter Settings",
new TextField("Title", _t('NewsletterAdmin.NEWSLTYPE','Newsletter Type')),
new TextField("FromEmail", _t('NewsletterAdmin.FROMEM','From email address')),
$templates = new TemplateList("Template", _t('NewsletterAdmin.TEMPLATE', 'Template'), $mailType->Template, self::template_path())
$templates = new TemplateList("Template","Template", $mailType->Template, self::template_path())
)
)
);
@ -275,7 +241,7 @@ class NewsletterAdmin extends LeftAndMain {
$fields->push( new HiddenField( "executeForm", "", "TypeEditForm" ) );
$idField->setValue($id);
$actions = new FieldSet(new FormAction('save', _t('NewsletterAdmin.SAVE', 'Save')));
$actions = new FieldSet(new FormAction('save','Save'));
$form = new Form($this, "EditForm", $fields, $actions);
$form->loadDataFrom(array(
@ -309,20 +275,20 @@ class NewsletterAdmin extends LeftAndMain {
if(isset($mailType) && is_object($mailType)) {
$fields = new FieldSet(
new TabSet("Root",
new Tab(_t('NewsletterAdmin.RECIPIENTS', 'Recipients'),
new Tab( "Recipients",
$recipients = new MemberTableField(
$this,
"Recipients",
$group
)
),
new Tab(_t('NewsletterAdmin.IMPORT', 'Import'),
$importField = new RecipientImportField("ImportFile",_t('NewsletterAdmin.IMPORTFROM', 'Import from file'), $group )
new Tab( "Import",
$importField = new RecipientImportField("ImportFile","Import from file", $group )
),
new Tab(_t('NewsletterAdmin.UNSUBSCRIBERS', 'Unsubscribers'),
new Tab("Unsubscribers",
$unsubscribedList = new UnsubscribedList("Unsubscribed", $mailType)
),
new Tab(_t('NewsletterAdmin.BOUNCED','Bounced'), $bouncedList = new BouncedList("Bounced", $mailType )
new Tab("Bounced", $bouncedList = new BouncedList("Bounced", $mailType )
)
)
);
@ -375,7 +341,7 @@ class NewsletterAdmin extends LeftAndMain {
} else {
user_error("NewsletterAdmin::removebouncedmember: Bad parameters: Group=$groupID, Member=".$bounceObject->MemberID, E_USER_ERROR);
}
FormResponse::status_message($memberObject->Email.' '._t('NewsletterAdmin.REMOVEDSUCCESS', 'was removed from the mailing list'), 'good');
FormResponse::status_message($memberObject->Email.' was removed from the mailing list', 'good');
FormResponse::add("$('Form_EditForm').getPageFromServer($('Form_EditForm_ID').value, 'recipients');");
return FormResponse::respond();
}
@ -454,7 +420,7 @@ class NewsletterAdmin extends LeftAndMain {
$id = isset($_REQUEST['ID']) ? $_REQUEST['ID'] : $_REQUEST['NewsletterID'];
if( !$id ) {
FormResponse::status_message(_t('NewsletterAdmin.NONLSPECIFIED', 'No newsletter specified'),'bad');
FormResponse::status_message('No newsletter specified','bad');
return FormResponse::respond();
}
@ -577,11 +543,11 @@ class NewsletterAdmin extends LeftAndMain {
// If the email is currently not blocked, block it
if (FALSE == $memberObject->BlacklistedEmail) {
$memberObject->setBlacklistedEmail(TRUE);
FormResponse::status_message($memberObject->Email.' '._t('NewsletterAdmin.ADDEDTOBL', 'was added to blacklist'), 'good');
FormResponse::status_message($memberObject->Email.' was added to blacklist', 'good');
} else {
// Unblock the email
$memberObject->setBlacklistedEmail(FALSE);
FormResponse::status_message($memberObject->Email.' '._t('NewsletterAdmin.REMOVEDFROMBL','was removed from blacklist'), 'good');
FormResponse::status_message($memberObject->Email.' was removed from blacklist', 'good');
}
return FormResponse::respond();
}

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage pagetypes
*/
/**
* Page type that lets users build a contact form.
* @package cms
* @subpackage pagetypes
*/
class UserDefinedForm extends Page {
static $add_action = "a contact form";
@ -43,9 +33,9 @@ class UserDefinedForm extends Page {
function getCMSFields($cms) {
$fields = parent::getCMSFields($cms);
$fields->addFieldToTab("Root."._t('UserDefinedForm.FORM', 'Form'), new FieldEditor("Fields", 'Fields', "", $this ));
$fields->addFieldToTab("Root."._t('UserDefinedForm.SUBMISSIONS','Submissions'), new SubmittedFormReportField( "Reports", _t('UserDefinedForm.RECEIVED', 'Received Submissions'), "", $this ) );
$fields->addFieldToTab("Root.Content."._t('UserDefinedForm.ONCOMPLETE','On complete'), new HtmlEditorField( "OnCompleteMessage", _t('UserDefinedForm.ONCOMPLETELABEL', 'Show on completion'),3,"",_t('UserDefinedForm.ONCOMPLETEMESSAGE', $this->OnCompleteMessage), $this ) );
$fields->addFieldToTab("Root.Form", new FieldEditor("Fields", "Fields", "", $this ));
$fields->addFieldToTab("Root.Submissions", new SubmittedFormReportField( "Reports", "Received Submissions", "", $this ) );
$fields->addFieldToTab("Root.Content.On complete", new HtmlEditorField( "OnCompleteMessage", "Show on completion",3,"",$this->OnCompleteMessage, $this ) );
return $fields;
}
@ -61,7 +51,7 @@ class UserDefinedForm extends Page {
// Build actions
$actions = new FieldSet(
new FormAction( "filter", _t('UserDefinedForm.SUBMIT', 'Submit') )
new FormAction( "filter", "Submit" )
);
// set the name of the form
@ -116,12 +106,12 @@ class UserDefinedForm extends Page {
$submittedValues = DataObject::get( 'SubmittedFormField', implode( ' AND ', $filterClause ), "", "INNER JOIN `SubmittedForm` ON `SubmittedFormField`.`ParentID`=`SubmittedForm`.`ID`" );
if( !$submittedValues || $submittedValues->Count() == 0 )
return _t('UserDefinedForm.NORESULTS', 'No matching results found');
return "No matching results found";
$submissions = $submittedValues->groupWithParents( 'ParentID', 'SubmittedForm' );
if( !$submissions || $submissions->Count() == 0 )
return _t('UserDefinedForm.NORESULTS', 'No matching results found');
return "No matching results found";
return $submissions->customise(
array( 'Submissions' => $submissions )
@ -141,7 +131,7 @@ class UserDefinedForm extends Page {
}
public function customFormActions( $isReadonly = false ) {
return new FieldSet( new TextField( "SubmitButtonText", _t('UserDefinedForm.TEXTONSUBMIT', 'Text on submit button:'), $this->SubmitButtonText ) );
return new FieldSet( new TextField( "SubmitButtonText", "Text on submit button:", $this->SubmitButtonText ) );
}
/**
@ -159,11 +149,6 @@ class UserDefinedForm extends Page {
}
}
/**
* Controller for the {@link UserDefinedForm} page type.
* @package cms
* @subpackage pagetypes
*/
class UserDefinedForm_Controller extends Page_Controller {
function init() {
@ -188,13 +173,8 @@ class UserDefinedForm_Controller extends Page_Controller {
$required[] = $field->Name;
}
if(!isset($_SERVER['HTTP_REFERER'])) {
$_SERVER['HTTP_REFERER'] = "";
}
$fields->push( new HiddenField( "Referrer", "", $_SERVER['HTTP_REFERER'] ) );
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$fields->push( new HiddenField( "Referrer", "", $referer ) );
// Build actions
$actions = new FieldSet(
new FormAction( "process", $this->SubmitButtonText )
@ -233,7 +213,7 @@ class UserDefinedForm_Controller extends Page_Controller {
if( $field->hasMethod( 'getValueFromData' ) )
$submittedField->Value = $field->getValueFromData( $data );
else
if(isset($data[$field->Name])) $submittedField->Value = $data[$field->Name];
$submittedField->Value = $data[$field->Name];
$submittedField->write();
$submittedFields->push($submittedField);
@ -279,7 +259,7 @@ class UserDefinedForm_Controller extends Page_Controller {
$values[$field->Title] = Convert::linkIfMatch($field->getValueFromData( $data ));
} else {
if(isset($data[$field->Name])) $values[$field->Title] = Convert::linkIfMatch($data[$field->Name]);
$values[$field->Title] = Convert::linkIfMatch($data[$field->Name]);
}
}
@ -321,20 +301,14 @@ class UserDefinedForm_Controller extends Page_Controller {
}
}
/**
* Email that gets sent when a submission is made.
* @package cms
* @subpackage pagetypes
*/
class UserDefinedForm_SubmittedFormEmail extends Email_Template {
protected $ss_template = "SubmittedFormEmail";
protected $from = '$Sender.Email';
protected $to = '$Recipient.Email';
protected $subject = 'Submission of form';
protected $subject = "Submission of form";
protected $data;
function __construct($values) {
$this->subject = _t('UserDefinedForm_SubmittedFormEmail.EMAILSUBJECT', 'Submission of form');
parent::__construct();
$this->data = $values;

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage reports
*/
/**
* Reports section of the CMS
* @package cms
* @subpackage reports
*/
class ReportAdmin extends LeftAndMain {
static $subitem_class = "GrantObject";

View File

@ -1,29 +1,8 @@
<?php
/**
* @package cms
* @subpackage security
*/
/**
* Security section of the CMS
* @package cms
* @subpackage security
*/
class SecurityAdmin extends LeftAndMain implements PermissionProvider {
static $tree_class = "Group";
static $subitem_class = "Member";
static $allowed_actions = array(
'addgroup',
'addmember',
'autocomplete',
'getmember',
'listmembers',
'newmember',
'removememberfromgroup',
'savemember',
);
public function init() {
// Check permissions
@ -55,32 +34,24 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
if($record) {
$fields = new FieldSet(
new TabSet("Root",
new Tab(_t('SecurityAdmin.MEMBERS', 'Members'),
new TextField("Title", _t('SecurityAdmin.GROUPNAME', 'Group name')),
new Tab("Members",
new TextField("Title", "Group name"),
$memberList = new MemberTableField(
$this,
"Members",
$record,
null,
false
$record
)
),
new Tab(_t('SecurityAdmin.PERMISSIONS', 'Permissions'),
new Tab("Permissions",
new LiteralField("", "<p>"._t('SecurityAdmin.ADVANCEDONLY',"This section is for advanced users only.
See <a href=\"http://doc.silverstripe.com/doku.php?id=permissions:codes\" target=\"_blank\">this page</a>
for more information.")."</p>"),
new TableField(
"Permissions",
"Permission",
array(
"Code" => _t('SecurityAdmin.CODE', 'Code'),
"Arg" => _t('SecurityAdmin.OPTIONALID', 'Optional ID'),
),
array(
"Code" => "PermissionDropdownField",
"Arg" => "TextField",
),
array("Code" => "Code", "Arg" => "Optional ID"),
array("Code" => "PermissionDropdownField", "Arg" => "TextField"),
"GroupID", $id
)
)
@ -91,13 +62,11 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$memberList->setController($this);
$memberList->setPermissions(array('show', 'edit', 'delete', 'export', 'add'));
$memberList->setParentClass('Group');
$memberList->setPopupCaption(_t('SecurityAdmin.VIEWUSER', 'View User'));
$fields->push($idField = new HiddenField("ID"));
$idField->setValue($id);
$actions = new FieldSet(
//new FormAction('addmember',_t('SecurityAdmin.ADDMEMBER','Add Member'))
new FormAction('addmember',_t('SecurityAdmin.ADDMEMBER','Add Member'))
);
$actions->push(new FormAction('save',_t('SecurityAdmin.SAVE','Save')));
@ -124,7 +93,6 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
public function autocomplete() {
$fieldName = $this->urlParams['ID'];
$fieldVal = $_REQUEST[$fieldName];
$result = '';
$matches = DataObject::get("Member","$fieldName LIKE '" . addslashes($fieldVal) . "%'");
if($matches) {
@ -367,7 +335,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
function providePermissions() {
return array(
'EDIT_PERMISSIONS' => _t('SecurityAdmin.EDITPERMISSIONS', 'Edit Permissions on each Group'),
'EDIT_PERMISSIONS' => 'Edit Permissions on each Group',
);
}
}

View File

@ -1,16 +1,5 @@
<?php
/**
* @package cms
* @subpackage content
*/
/**
* Base class for the small reports that appear in the left hand site of the Site Content section of the CMS.
* Create subclasses of this class to build new reports.
* @package cms
* @subpackage content
*/
abstract class SideReport extends Object {
abstract function records();
abstract function fieldsToShow();
@ -25,19 +14,7 @@ abstract class SideReport extends Object {
foreach($records as $record) {
$result .= "<li>\n";
foreach($fieldsToShow as $fieldTitle => $fieldInfo) {
if(isset($fieldInfo['source'])) {
$fieldSource = $fieldInfo['source'];
// Legacy format for the input data
} else {
$fieldSource = $fieldInfo;
$fieldInfo = array(
'link' => true,
'newline' => false,
);
}
foreach($fieldsToShow as $fieldTitle => $fieldSource) {
$fieldName = ereg_replace('[^A-Za-z0-9]+','',$fieldTitle);
if(is_string($fieldSource)) {
$val = $record->$fieldSource;
@ -45,14 +22,7 @@ abstract class SideReport extends Object {
$val = $record->val($fieldSource[0], $fieldSource[1]);
}
if(isset($fieldInfo['newline']) && $fieldInfo['newline']) $result .= "<br>";
if(isset($fieldInfo['link']) && $fieldInfo['link']) {
$link = ($fieldInfo['link'] === true) ? "admin/show/$record->ID" : $fieldInfo['link'];
$result .= "<a class=\"$fieldName\" href=\"$link\">$val</a>";
} else {
$result .= "<span class=\"$fieldName\">$val</span>";
}
$result .= "<a class=\"$fieldName\" href=\"admin/show/$record->ID\">$val</a>";
}
$result .= "\n</li>\n";
}
@ -64,11 +34,6 @@ abstract class SideReport extends Object {
}
}
/**
* Content side-report listing empty pages
* @package cms
* @subpackage content
*/
class SideReport_EmptyPages extends SideReport {
function title() {
return _t('SideReport.EMPTYPAGES',"Empty pages");
@ -83,11 +48,6 @@ class SideReport_EmptyPages extends SideReport {
}
}
/**
* Content side-report listing recently editing pages.
* @package cms
* @subpackage content
*/
class SideReport_RecentlyEdited extends SideReport {
function title() {
return _t('SideReport.LAST2WEEKS',"Pages edited in the last 2 weeks");
@ -101,25 +61,4 @@ class SideReport_RecentlyEdited extends SideReport {
);
}
}
class SideReport_ToDo extends SideReport {
function title() {
return _t('SideReport.TODO',"To do");
}
function records() {
return DataObject::get("SiteTree", "`SiteTree`.ToDo IS NOT NULL AND `SiteTree`.ToDo <> ''", "`SiteTree`.`LastEdited` DESC");
}
function fieldsToShow() {
return array(
"Title" => array(
"source" => array("NestedTitle", array("2")),
"link" => true,
),
"ToDo" => array(
"source" => "ToDo",
"newline" => true,
),
);
}
}
?>

View File

@ -1,25 +1,18 @@
<?php
/**
* @package cms
* @subpackage export
*/
/**
* This class lets you export a static copy of your site.
* It creates a huge number of folders each containing an index.html file.
* This preserves the URL naming format.
* @package cms
* @subpackage export
*/
class StaticExporter extends Controller {
function init() {
parent::init();
if(!Permission::check('ADMIN')) {
$messageSet = array(
'default' => _t('LeftAndMain.PERMDEFAULT', 'Enter your email address and password to access the CMS.'),
'alreadyLoggedIn' => _t('LeftAndMain.PERMALREADY', 'I\'m sorry, but you can\'t access that part of the CMS. If you want to log in as someone else, do so below'),
'logInAgain' => _t('LeftAndMain.PERMAGAIN', 'You have been logged out of the CMS. If you would like to log in again, enter a username and password below.'),
'default' => "Enter your email address and password to access the CMS.",
'alreadyLoggedIn' => "I'm sorry, but you can't access that part of the CMS. If you want to log in as someone else, do so below",
'logInAgain' => "You have been logged out of the CMS. If you would like to log in again, enter a username and password below.",
);
Security::permissionFailure($this, $messageSet);

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage reports
*/
/**
* Statistics section of the CMS
* @package cms
* @subpackage reports
*/
class StatisticsAdmin extends LeftAndMain {
static $tree_class = "SiteTree";
static $subitem_class = "Member";
@ -84,7 +74,7 @@ class StatisticsAdmin extends LeftAndMain {
*/
public function EditForm() {
return "<div class=\"tab statstab\" id=\"bovs\">\n
<h1>"._t('StatisticsAdmin.WELCOME','Select a report type from the left for a detailed look at site statistics')."</h1>\n\n" .
<h1>Select a report type from the left for a detailed look at site statistics</h1>\n\n" .
$this->RecentViews() .
"\n\n</div>\n\n" .
$this->showAll();

View File

@ -1,16 +1,9 @@
<?php
/**
* @package cms
* @subpackage assets
*/
/**
* Provides a strip of thumbnails showing all of the images in the system.
* It will be tied to a 'parent field' that will provide it with a filter by which to reduce the number
* of thumbnails displayed.
* @package cms
* @subpackage assets
*/
class ThumbnailStripField extends FormField {
protected $parentField;
@ -84,7 +77,7 @@ class ThumbnailStripField extends FormField {
}
$result .= '</ul>';
}else{
$result = '<h2> '._t('ThumbnailStripField.NOIMAGESFOUND', 'No images found in').' '. $folder->Title. '</h2>';
$result = "<h2> No images found in ". $folder->Title. "</h2>";
}
return $result;

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage content
*/
/**
* Special field type for selecting and configuring widgets on a page.
* @package cms
* @subpackage content
*/
class WidgetAreaEditor extends FormField {
function FieldHolder() {
return $this->renderWith("WidgetAreaEditor");

View File

@ -15,8 +15,7 @@
*
* See the Akismet class documentation page linked to below for usage information.
*
* @package cms
* @subpackage comments
* @package Akismet
* @author Alex Potsides, {@link http://www.achingbrain.net http://www.achingbrain.net}
* @version 0.1
* @copyright Alex Potsides, {@link http://www.achingbrain.net http://www.achingbrain.net}
@ -44,11 +43,11 @@
* // store the comment normally
* </code>
*
* @package akismet
* @name Akismet
* @version 0.2
* @author Alex Potsides
* @link http://www.achingbrain.net/
* @package cms
* @subpackage comments
*/
class Akismet
{
@ -299,12 +298,11 @@ class Akismet
*
* N.B. It is not necessary to call this class directly to use the Akismet class. This is included here mainly out of a sense of completeness.
*
* @package akismet
* @name SocketWriteRead
* @version 0.1
* @author Alex Potsides
* @link http://www.achingbrain.net/
* @package cms
* @subpackage comments
*/
class SocketWriteRead
{

View File

@ -1,15 +1,7 @@
<?php
/**
* @package cms
* @subpackage comments
*/
/**
* Tools for adding an optional protection question to a form.
* Remember to add MathSpamProtection::enabled(true); to _config.php for this question to be added to the comments form.
* @package cms
* @subpackage comments
*/
class MathSpamProtection {

View File

@ -1,15 +1,5 @@
<?php
/**
* @package cms
* @subpackage comments
*/
/**
* Represents a single comment on a page
* @package cms
* @subpackage comments
*/
class PageComment extends DataObject {
static $db = array(
"Name" => "Varchar",
@ -182,9 +172,8 @@ class PageComment extends DataObject {
$this->Parent()->Title
);
}
function rss() {
$parentcheck = isset($_REQUEST['pageid']) ? "ParentID = " . (int) $_REQUEST['pageid'] : "ParentID > 0";
$parentcheck = isset($_REQUEST['pageid']) ? "ParentID = {$_REQUEST['pageid']}" : "ParentID > 0";
$comments = DataObject::get("PageComment", "$parentcheck AND IsSpam=0", "Created DESC", "", 10);
if(!isset($comments)) {
$comments = new DataObjectSet();
@ -217,4 +206,4 @@ class PageComment extends DataObject {
}
?>
?>

View File

@ -1,16 +1,9 @@
<?php
/**
* @package cms
* @subpackage comments
*/
/**
* Represents an interface for viewing and adding page comments
* Create one, passing the page discussed to the constructor. It can then be
* inserted into a template.
* @package cms
* @subpackage comments
*/
class PageCommentInterface extends ViewableData {
protected $controller, $methodName, $page;
@ -40,16 +33,17 @@ class PageCommentInterface extends ViewableData {
$fields = new FieldSet(
new HiddenField("ParentID", "ParentID", $this->page->ID),
new TextField("Name", _t('PageCommentInterface.YOURNAME', 'Your name')));
new TextField("Name", "Your name")
);
if(MathSpamProtection::isEnabled()){
$fields->push(new TextField("Math", sprintf(_t('PageCommentInterface.SPAMQUESTION', "Spam protection question: %s"), MathSpamProtection::getMathQuestion())));
$fields->push(new TextField("Math","Spam protection question: ".MathSpamProtection::getMathQuestion()));
}
$fields->push(new TextareaField("Comment", _t('PageCommentInterface.YOURCOMMENT', "Comments")));
$fields->push(new TextareaField("Comment", "Comments"));
$form = new PageCommentInterface_Form($this->controller, $this->methodName . ".PostCommentForm",$fields, new FieldSet(
new FormAction("postcomment", _t('PageCommentInterface.POST', 'Post'))
new FormAction("postcomment", "Post")
));
$form->loadDataFrom(array(
@ -87,10 +81,6 @@ class PageCommentInterface extends ViewableData {
}
/**
* @package cms
* @subpackage comments
*/
class PageCommentInterface_Form extends Form {
function postcomment($data) {
// Spam filtering
@ -108,9 +98,10 @@ class PageCommentInterface_Form extends Form {
$comment->setField("IsSpam", true);
$comment->write();
}
echo "<b>"._t('PageCommentInterface_Form.SPAMDETECTED', 'Spam detected!!') . "</b><br /><br />";
printf("If you believe this was in error, please email %s.", ereg_replace("@", " _(at)_", Email::getAdminEmail()));
echo "<br /><br />"._t('PageCommentInterface_Form.MSGYOUPOSTED', 'The message you posted was:'). "<br /><br />";
echo "<b>Spam detected!!</b><br /><br />";
echo "If you believe this was in error, please email ";
echo ereg_replace("@", " _(at)_", Email::getAdminEmail());
echo ".<br /><br />The message you posted was:<br /><br />";
echo $data['Comment'];
return;
@ -140,7 +131,7 @@ class PageCommentInterface_Form extends Form {
if(Director::is_ajax()) {
if($comment->NeedsModeration){
echo _t('PageCommentInterface_Form.AWAITINGMODERATION', "Your comment has been submitted and is now awating moderation.");
echo "Your comment has been submitted and is now awating moderation.";
} else{
echo $comment->renderWith('PageCommentInterface_singlecomment');
}
@ -150,10 +141,6 @@ class PageCommentInterface_Form extends Form {
}
}
/**
* @package cms
* @subpackage comments
*/
class PageCommentInterface_Controller extends ContentController {
function __construct() {
parent::__construct(null);
@ -161,9 +148,9 @@ class PageCommentInterface_Controller extends ContentController {
function newspamquestion() {
if(Director::is_ajax()) {
echo Convert::raw2xml(sprintf(_t('PageCommentInterface_Controller.SPAMQUESTION', "Spam protection question: %s"),MathSpamProtection::getMathQuestion()));
echo Convert::raw2xml("Spam protection question: ".MathSpamProtection::getMathQuestion());
}
}
}
?>
?>

View File

@ -1,14 +1,4 @@
<?php
/**
* @package cms
* @subpackage comments
*/
/**
* @package cms
* @subpackage comments
*/
class SSAkismet extends Akismet {
private static $apiKey;
private static $saveSpam = true;

View File

@ -50,5 +50,4 @@ div.availableWidgets div.Widget h3 {
text-indent: 5px;
background: #000 url(../images/textures/obar-18.gif);
margin: 0;
cursor: move;
}

View File

@ -1,5 +1,6 @@
#left form.actionparams {
background: #ccc;
border-bottom: 1px solid #eee;
padding: 3px 5px;
}
#left form.actionparams input,
@ -288,23 +289,17 @@ ul#sitetree.tree ul ul {
}
/* This applies to both the LHS context menu and the TinyMCE context menu */
.contextMenu {
z-index: 1000;
background-color: white;
border: 1px #CCC solid;
}
ul.contextMenu {
.contextMenu {
padding: 0;
margin: 0;
}
ul.contextMenu li {
.contextMenu li {
list-style-type: none;
margin: 0;
padding: 0;
}
ul.contextMenu li a {
.contextMenu li a {
display: block;
font-family: Tahoma, Verdana, Arial, Helvetica;
font-size: 11px;
@ -312,7 +307,7 @@ ul.contextMenu li a {
color: black;
text-decoration: none;
}
ul.contextMenu li a:hover {
.contextMenu li a:hover {
background-color: #B6BDD2;
text-decoration: none;
}
@ -368,10 +363,4 @@ ul.tree li.untranslated a:visited {
}
#LangSelector_holder.onelang {
display: none;
}
#SortItems {
border-bottom: 1px solid #cccccc;
background: #CCCCCC none repeat scroll 0%;
padding: 3px 0 3px 7px;
}
}

View File

@ -371,11 +371,7 @@ TreeContextMenu = {
'Edit this page' : function(treeNode) {
treeNode.selectTreeNode();
},
'Duplicate page and children' : function(treeNode) {
// First save the page silently (without confirmation) and then duplicate the page.
autoSave(false, treeNode.duplicatePageWithChildren.bind(treeNode));
},
'Duplicate just this page' : function(treeNode) {
'Duplicate this page' : function(treeNode) {
// First save the page silently (without confirmation) and then duplicate the page.
autoSave(false, treeNode.duplicatePage.bind(treeNode));
},

View File

@ -8,13 +8,18 @@ RightContent.prototype = {
welcomeMessage: "<h1>SilverStripe CMS</h1><p>Welcome to SilverStripe CMS! Please choose click on one of the items on the left pane.</p>",
initialize : function() {
Behaviour.register({
'#Form_EditForm_action_delete' : {
onclick: this.remove.bind(this)
}
});
},
updateCMSContent: function(el, currentTab, link, customCallBack) {
if(!customCallBack) customCallBack = function(){};
if(el || link){
var reqLink = (el && el.href) ? el.href : link;
var reqLink = (el.href) ? el.href : link;
if(typeof(currentTab) != 'undefined')
$('Form_EditForm').openTab = currentTab;
@ -54,7 +59,7 @@ RightContent.prototype = {
remove: function(e) {
if(window.confirm('Are you sure you want to delete?')){
var el = Event.element(e);
Ajax.SubmitForm($('Form_EditForm'), el.name, {
Ajax.SubmitForm(el.ownerForm, el.name, {
postBody : 'ajax=1',
onSuccess: Ajax.Evaluator,
onFailure: ajaxErrorHandler
@ -108,8 +113,4 @@ RightContent.prototype = {
titleHolder[0].innerHTML = title;
}
}
}
var action_delete_right = function(e) {
$('Form_EditForm').remove(e);
}
}

View File

@ -190,22 +190,7 @@ TreeNodeAPI.prototype = {
}
},
duplicatePage: function() {
// Pass the parent ID to the duplicator, which helps ensure that multi-parent pages are duplicated into the node that the user clicked
var parentClause = "";
if(this.parentTreeNode && this.parentTreeNode.getIdx) {
parentClause = "&parentID=" + this.parentTreeNode.getIdx();
}
new Ajax.Request(baseHref() + 'admin/duplicate/' + this.getIdx() + '?ajax=1' + parentClause, {
method : 'get',
onSuccess : Ajax.Evaluator,
onFailure : function(response) {
errorMessage('Error: ', response);
}
});
},
duplicatePageWithChildren: function() {
new Ajax.Request(baseHref() + 'admin/duplicatewithchildren/' + this.getIdx() + '?ajax=1', {
new Ajax.Request(baseHref() + 'admin/duplicate/' + this.getIdx() + '?ajax=1', {
method : 'get',
onSuccess : Ajax.Evaluator,
onFailure : function(response) {
@ -458,13 +443,16 @@ ReorganiseAction = Class.create();
ReorganiseAction.applyTo('#sortitems');
ReorganiseAction.prototype = {
initialize: function () {
this.isDraggable = false;
},
onclick : function() {
if ($('sitetree').isDraggable == false) {
if (this.isDraggable == false) {
$('sitetree').makeDraggable();
this.isDraggable = true;
} else {
$('sitetree').stopBeingDraggable();
this.isDraggable = false;
}
}
}
@ -492,4 +480,4 @@ SiteTreeFilterForm.prototype = {
return false;
}
}
}

View File

@ -30,7 +30,7 @@ ThumbnailStripField.prototype = {
ajaxGetFiles: function(folderID,callback) {
if(!callback) callback = this.reapplyBehaviour.bind(this);
this.innerHTML = '<span style="float: left">Loading...</span>'
var ajaxURL = this.helperURLBase() + '&methodName='+this.updateMethod+'&folderID=' + folderID + ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : '') + '&cacheKillerDate=' + parseInt((new Date()).getTime()) + '&cacheKillerRand=' + parseInt(10000*Math.random());
var ajaxURL = this.helperURLBase() + '&methodName='+this.updateMethod+'&folderID=' + folderID + ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : '');
new Ajax.Updater(this, ajaxURL, {
method : 'get',
onComplete : callback,

View File

@ -27,7 +27,7 @@ if((typeof tinyMCE != 'undefined')) {
theme_advanced_toolbar_location : "manually_placed",
theme_advanced_toolbar_align : "left",
theme_advanced_toolbar_parent : "right",
plugins : "contextmenu,table,emotions,flash,paste",
plugins : "contextmenu,table,emotions,flash",
table_inline_editing : true,
theme_advanced_buttons1 : "italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,separator,bullist,numlist,outdent,indent,hr,charmap",
theme_advanced_buttons2 : "undo,redo,separator,cut,copy,paste,separator,search,replace,separator,flash",
@ -43,4 +43,4 @@ if((typeof tinyMCE != 'undefined')) {
valid_elements : "+a[id|rel|rev|dir|tabindex|accesskey|type|name|href|target|title|class],-strong/-b[class],-em/-i[class],-strike[class],-u[class],#p[id|dir|class|align],-ol[class],-ul[class],-li[class],br,img[id|dir|longdesc|usemap|class|src|border|alt=|title|width|height|align],-sub[class],-sup[class],-blockquote[dir|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|dir|id|style],-tr[id|dir|class|rowspan|width|height|align|valign|bgcolor|background|bordercolor|style],tbody[id|class|style],thead[id|class|style],tfoot[id|class|style],-td[id|dir|class|colspan|rowspan|width|height|align|valign|scope|style],-th[id|dir|class|colspan|rowspan|width|height|align|valign|scope|style],caption[id|dir|class],-div[id|dir|class|align],-span[class|align],-pre[class|align],address[class|align],-h1[id|dir|class|align],-h2[id|dir|class|align],-h3[id|dir|class|align],-h4[id|dir|class|align],-h5[id|dir|class|align],-h6[id|dir|class|align],hr[class],dd[id|class|title|dir],dl[id|class|title|dir],dt[id|class|title|dir]",
extended_valid_elements : "img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name]"
});
}
}

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('bg_BG', $lang) && is_array($lang['bg_BG'])) {
$lang['bg_BG'] = array_merge($lang['en_US'], $lang['bg_BG']);
} else {
$lang['bg_BG'] = $lang['en_US'];
}
$lang['bg_BG'] = $lang['en_US'];
$lang['bg_BG']['AssetAdmin']['CHOOSEFILE'] = 'Избери файл';
$lang['bg_BG']['AssetAdmin']['CONTENTMODBY'] = 'Съдържанието достъпно за промяна от';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('cs_CZ', $lang) && is_array($lang['cs_CZ'])) {
$lang['cs_CZ'] = array_merge($lang['en_US'], $lang['cs_CZ']);
} else {
$lang['cs_CZ'] = $lang['en_US'];
}
$lang['cs_CZ'] = $lang['en_US'];
$lang['cs_CZ']['AssetAdmin']['CHOOSEFILE'] = 'Vybrat soubor';
$lang['cs_CZ']['AssetAdmin']['CONTENTMODBY'] = 'Obsah upravitelný';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('de_DE', $lang) && is_array($lang['de_DE'])) {
$lang['de_DE'] = array_merge($lang['en_US'], $lang['de_DE']);
} else {
$lang['de_DE'] = $lang['en_US'];
}
$lang['de_DE'] = $lang['en_US'];
$lang['de_DE']['AssetAdmin']['CHOOSEFILE'] = 'Datei auswählen';
$lang['de_DE']['AssetAdmin']['CONTENTMODBY'] = 'Inhalt veränderbar durch';

View File

@ -137,20 +137,6 @@ $lang['en_US']['CMSMain']['VISITRESTORE'] = array(
PR_LOW,
'restorepage/(ID) should not be translated (is an URL)'
);
$lang['en_US']['CommentAdmin']['APPROVEDCOMMENTS'] = 'Approved Comments';
$lang['en_US']['CommentAdmin']['COMMENTSAWAITINGMODERATION'] = 'Comments Awaiting Moderation';
$lang['en_US']['CommentAdmin']['SPAM'] = 'Spam';
$lang['en_US']['CommentAdmin']['AUTHOR'] = 'Author';
$lang['en_US']['CommentAdmin']['COMMENT'] = 'Comment';
$lang['en_US']['CommentAdmin']['PAGE'] = 'Page';
$lang['en_US']['CommentAdmin']['DATEPOSTED'] = 'Date Posted';
$lang['en_US']['CommentAdmin']['ACCEPT'] = 'Accept';
$lang['en_US']['CommentAdmin']['SPAMMARKED'] = 'Mark as spam';
$lang['en_US']['CommentAdmin']['MARKASNOTSPAM'] = 'Mark as not spam';
$lang['en_US']['CommentAdmin']['DELETE'] = 'Delete';
$lang['en_US']['CommentAdmin']['DELETEALL'] = 'Delete All';
$lang['en_US']['CommentTableField']['SEARCH'] = 'Search';
$lang['en_US']['CommentTableField']['FILTER'] = 'Filter';
$lang['en_US']['LeftAndMain']['PERMDEFAULT'] = 'Please choose an authentication method and enter your credentials to access the CMS.';
$lang['en_US']['LeftAndMain']['PERMALREADY'] = 'I\'m sorry, but you can\'t access that part of the CMS. If you want to log in as someone else, do so below';
$lang['en_US']['LeftAndMain']['PERMAGAIN'] = 'You have been logged out of the CMS. If you would like to log in again, enter a username and password below.';
@ -258,11 +244,6 @@ $lang['en_US']['CMSMain_versions.ss']['NOTPUB'] = 'Not published';
$lang['en_US']['CommentList.ss']['NOCOM'] = 'There are no comments on this page.';
$lang['en_US']['CommentList.ss']['CREATEDW'] = 'Comments are created whenever one of the \'workflow actions\'
are undertaken - Publish, Reject, Submit.';
$lang['en_US']['CommentTableField.ss']['APPROVECOMMENT'] = 'Approve this comment';
$lang['en_US']['CommentTableField.ss']['MARKASSPAM'] = 'Mark this comment as spam' ;
$lang['en_US']['CommentTableField.ss']['MARKNOSPAM'] = 'Mark this comment as not spam';
$lang['en_US']['CommentTableField.ss']['DELETEROW'] = 'Delete this row';
$lang['en_US']['CommentTableField.ss']['NOITEMSFOUND'] = 'No items found';
$lang['en_US']['ImageEditor.ss']['UNTITLED'] = 'Untitled Document';
$lang['en_US']['ImageEditor.ss']['SAVE'] = 'save&nbsp;image';
$lang['en_US']['ImageEditor.ss']['UNDO'] = 'undo';
@ -347,10 +328,6 @@ $lang['en_US']['CMSMain_right.ss']['CHOOSEPAGE'] = 'Please choose a page from th
$lang['en_US']['CMSRight.ss']['ECONTENT'] = 'Edit Content';
$lang['en_US']['CMSRight.ss']['WELCOMETO'] = 'Welcome to';
$lang['en_US']['CMSRight.ss']['CHOOSEPAGE'] = 'Please choose a page from the left.';
$lang['en_US']['CommentAdmin_left.ss']['COMMENTS'] = 'Comments';
$lang['en_US']['CommentAdmin_left.ss']['APPROVED'] = 'Approved';
$lang['en_US']['CommentAdmin_left.ss']['AWAITMODERATION'] = 'Awaiting Moderation';
$lang['en_US']['CommentAdmin_left.ss']['SPAM'] = 'Spam';
$lang['en_US']['GenericDataAdmin_left.ss']['ADDLISTING'] = 'Add Listing';
$lang['en_US']['GenericDataAdmin_left.ss']['SEARCHLISTINGS'] = 'Search Listings';
$lang['en_US']['GenericDataAdmin_left.ss']['SEARCHRESULTS'] = 'Search Results';
@ -477,7 +454,6 @@ $lang['en_US']['PageCommentInterface.ss']['COMMENTS'] = 'Comments';
$lang['en_US']['PageCommentInterface.ss']['PREV'] = 'previous';
$lang['en_US']['PageCommentInterface.ss']['NEXT'] = 'next';
$lang['en_US']['PageCommentInterface.ss']['NOCOMMENTSYET'] = 'No one has commented on this page yet.';
$lang['en_US']['PageCommentInterface.ss']['RSSFEEDCOMMENTS'] = 'RSS feed for comments on this page';
$lang['en_US']['PageCommentInterface_singlecomment.ss']['PBY'] = 'Posted by';
$lang['en_US']['PageCommentInterface_singlecomment.ss']['ISSPAM'] = 'this comment is spam';
$lang['en_US']['PageCommentInterface_singlecomment.ss']['ISNTSPAM'] = 'this comment is not spam';
@ -493,75 +469,4 @@ $lang['en_US']['ViewArchivedEmail.ss']['HAVEASKED'] = array(
);
$lang['en_US']['ViewArchivedEmail.ss']['CANACCESS'] = 'You can access the archived site at this link:';
// New2
$lang['en_US']['MemberTableField.ss']['DISPLAYING'] = 'Displaying';
$lang['en_US']['MemberTableField.ss']['TO'] = 'to';
$lang['en_US']['MemberTableField.ss']['OF'] = 'of';
$lang['en_US']['MemberTableField.ss']['EDITASSET'] = 'Edit file';
$lang['en_US']['MemberTableField']['FIRSTNAME'] = 'Firstname';
$lang['en_US']['MemberTableField']['SURNAME'] = 'Surname';
$lang['en_US']['MemberTableField']['EMAIL'] = 'Email';
$lang['en_US']['GenericDataAdmin']['CSVEXPORT'] = 'Export to CSV';
$lang['en_US']['SecurityAdmin']['VIEWUSER'] = 'View User';
$lang['en_US']['CMSMain']['ACCESSTO'] = array('Access to %s in CMS',
PR_MEDIUM,
'%s is a class name');
$lang['en_US']['CMSMain']['ASSETADMINNAME'] = 'Assets';
$lang['en_US']['CMSMain']['BULKLOADERADMINNAME'] = 'Bulk Loader';
$lang['en_US']['CMSMain']['CMSMAINNAME'] = 'Main CMS';
$lang['en_US']['CMSMain']['COMMENTADMINNAME'] = 'Comments';
$lang['en_US']['CMSMain']['GENERICDATAADMINNAME'] = 'Generic Data';
$lang['en_US']['CMSMain']['LEFTANDMAINNAME'] = 'Left And Main';
$lang['en_US']['CMSMain']['NEWSLETTERADMINNAME'] = 'Newsletter';
$lang['en_US']['CMSMain']['REPORTADMINNAME'] = 'Reports';
$lang['en_US']['CMSMain']['SECURITYADMINNAME'] = 'Security';
$lang['en_US']['CMSMain']['STATISTICSADMINNAME'] = 'Statistics';
$lang['en_US']['CommentAdmin']['APPROVEDCOMMENTS'] = 'Approved Comments';
$lang['en_US']['CommentAdmin']['WAITINGMODERATION'] = 'Comments Awaiting Moderation';
$lang['en_US']['CommentAdmin']['SPAM'] = 'Spam';
$lang['en_US']['CommentAdmin']['AUTHOR'] = 'Author';
$lang['en_US']['CommentAdmin']['COMMENT'] = 'Comment';
$lang['en_US']['CommentAdmin']['COMMENTS'] = 'Comments';
$lang['en_US']['CommentAdmin']['PAGE'] = 'Page';
$lang['en_US']['CommentAdmin']['CREATED'] = 'Date Posted';
$lang['en_US']['CommentAdmin']['ACCEPT'] = 'Accept';
$lang['en_US']['CommentAdmin']['MARKSPAM'] = 'Mark as spam';
$lang['en_US']['CommentAdmin']['MARKNOTSPAM'] = 'Mark as not spam';
$lang['en_US']['CommentAdmin']['DELETE'] = 'Delete';
$lang['en_US']['CommentAdmin']['DELETEALL'] = 'Delete All';
$lang['en_US']['CommentAdmin']['NAME'] = 'Name';
$lang['en_US']['CommentAdmin']['EDIT'] = 'Edit';
$lang['en_US']['CommentTableField']['SEARCH'] = 'Search';
$lang['en_US']['CommentTableField']['FILTER'] = 'Filter';
$lang['en_US']['CommentTableField.ss']['DISPLAYING'] = 'Displaying';
$lang['en_US']['CommentTableField.ss']['TO'] = 'to';
$lang['en_US']['CommentTableField.ss']['OF'] = 'of';
$lang['en_US']['CommentTableField.ss']['NOITEMSFOUND'] = 'No items found';
$lang['en_US']['CommentTableField.ss']['EDIT'] = 'Edit';
$lang['en_US']['CommentTableField.ss']['APPROVE'] = 'Approve this comment';
$lang['en_US']['CommentTableField.ss']['MARKASSPAM'] = 'Mark this comment as spam';
$lang['en_US']['CommentTableField.ss']['MARKASNOTSPAM'] = 'Mark this comment as not spam';
$lang['en_US']['CommentTableField.ss']['DELETEROW'] = 'Delete this row';
$lang['en_US']['CommentAdmin_left.ss']['COMMENTS'] = 'Comments';
$lang['en_US']['CommentAdmin_left.ss']['APPROVED'] = 'Approved';
$lang['en_US']['CommentAdmin_left.ss']['WAITINGMODERATION'] = 'Awaiting Moderation';
$lang['en_US']['CommentAdmin_left.ss']['SPAM'] = 'Spam';
$lang['en_US']['StatisticsAdmin']['SELECTREPORT'] = 'Select a report type from the left for a detailed look at site statistics';
$lang['en_US']['StatisticsAdmin_left.ss']['STATISTICS'] = 'Statistics';
$lang['en_US']['StatisticsAdmin_left.ss']['VIEWS'] = 'Views';
$lang['en_US']['StatisticsAdmin_left.ss']['TRENDS'] = 'Trends';
$lang['en_US']['StatisticsAdmin_left.ss']['OS'] = 'Operating Systems';
$lang['en_US']['StatisticsAdmin_left.ss']['BROWSERS'] = 'Browsers';
?>

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('es_ES', $lang) && is_array($lang['es_ES'])) {
$lang['es_ES'] = array_merge($lang['en_US'], $lang['es_ES']);
} else {
$lang['es_ES'] = $lang['en_US'];
}
$lang['es_ES'] = $lang['en_US'];
$lang['es_ES']['AssetAdmin']['CHOOSEFILE'] = 'Seleccione archivo';
$lang['es_ES']['AssetAdmin']['CONTENTMODBY'] = 'Contenido modificable por';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('fr_FR', $lang) && is_array($lang['fr_FR'])) {
$lang['fr_FR'] = array_merge($lang['en_US'], $lang['fr_FR']);
} else {
$lang['fr_FR'] = $lang['en_US'];
}
$lang['fr_FR'] = $lang['en_US'];
$lang['fr_FR']['AssetAdmin']['CHOOSEFILE'] = 'Choisir un fichier';
$lang['fr_FR']['AssetAdmin']['CONTENTMODBY'] = 'Contenu modifiable par';
@ -184,7 +180,7 @@ $lang['fr_FR']['LeftAndMain']['CHANGEDURL'] = 'URL modifiée en \'%s\'';
$lang['fr_FR']['LeftAndMain']['COMMENTS'] = 'Commentaires';
$lang['fr_FR']['LeftAndMain']['FILESIMAGES'] = 'Fichiers & Images';
$lang['fr_FR']['LeftAndMain']['HELP'] = 'Aide';
$lang['fr_FR']['LeftAndMain']['NEWSLETTERS'] = 'Newsletters';
$lang['fr_FR']['LeftAndMain']['NEWSLETTERS'] = 'News-Lettres';
$lang['fr_FR']['LeftAndMain']['PAGETYPE'] = 'Type de page :';
$lang['fr_FR']['LeftAndMain']['PERMAGAIN'] = 'Vous avez été déconnecté du CMS. Si vous voulez vous reconnecter, entrez un nom d\'utilisateur et un mot de passe ci-dessous.';
$lang['fr_FR']['LeftAndMain']['PERMALREADY'] = 'Désolé, mais vous ne pouvez pas accéder cette partie du CMS. Si vous voulez changer d\'identification, faites le ci-dessous';
@ -292,7 +288,6 @@ $lang['fr_FR']['Newsletter_SentStatusReport.ss']['SENDBOUNCED'] = 'Envois aux De
$lang['fr_FR']['Newsletter_SentStatusReport.ss']['SENDFAIL'] = 'Envois aux Destinataires Suivants Echoué';
$lang['fr_FR']['Newsletter_SentStatusReport.ss']['SENTOK'] = 'L\'Envoi aux Destinataires Suivants a été Réussi';
$lang['fr_FR']['Newsletter_SentStatusReport.ss']['SN'] = 'Nom de famille';
$lang['fr_FR']['PageComment']['COMMENTBY'] = 'Commentaire de \'%s\' sur %s';
$lang['fr_FR']['PageCommentInterface.ss']['COMMENTS'] = 'Commentaires';
$lang['fr_FR']['PageCommentInterface.ss']['NEXT'] = 'suivant';
$lang['fr_FR']['PageCommentInterface.ss']['NOCOMMENTSYET'] = 'Personne n\'a encore commenté cette page.';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('hr_HR', $lang) && is_array($lang['hr_HR'])) {
$lang['hr_HR'] = array_merge($lang['en_US'], $lang['hr_HR']);
} else {
$lang['hr_HR'] = $lang['en_US'];
}
$lang['hr_HR'] = $lang['en_US'];
$lang['hr_HR']['AssetAdmin']['CHOOSEFILE'] = 'Odaberite datoteku';
$lang['hr_HR']['AssetAdmin']['CONTENTMODBY'] = 'Sadržaj može mijenjati';
@ -263,7 +259,7 @@ $lang['hr_HR']['NewsletterAdmin_right.ss']['ONLYNOT'] = 'Pošalji samo korisnici
$lang['hr_HR']['NewsletterAdmin_right.ss']['SEND'] = 'Pošalji newsletter';
$lang['hr_HR']['NewsletterAdmin_right.ss']['SENDTEST'] = 'Pošalji test na';
$lang['hr_HR']['NewsletterAdmin_right.ss']['WELCOME1'] = 'Dobrodošli na';
$lang['hr_HR']['NewsletterAdmin_right.ss']['WELCOME2'] = 'administraciju newslettera. Odaberite direktorij s lijeve strane.
$lang['hr_HR']['NewsletterAdmin_right.ss']['WELCOME2'] = 'administraciju newslettera. Odaberite direktorij s lijeve strane.
';
$lang['hr_HR']['NewsletterAdmin_SiteTree.ss']['DRAFTS'] = 'Privremeni';
$lang['hr_HR']['NewsletterAdmin_SiteTree.ss']['MAILLIST'] = 'Mailing liste';
@ -294,7 +290,6 @@ $lang['hr_HR']['Newsletter_SentStatusReport.ss']['SENDBOUNCED'] = 'Slanje slijed
$lang['hr_HR']['Newsletter_SentStatusReport.ss']['SENDFAIL'] = 'Slanje slijedećim primateljima nije uspjelo';
$lang['hr_HR']['Newsletter_SentStatusReport.ss']['SENTOK'] = 'Slanje slijedećim primateljima je uspješno';
$lang['hr_HR']['Newsletter_SentStatusReport.ss']['SN'] = 'Prezime';
$lang['hr_HR']['PageComment']['COMMENTBY'] = 'Komentar od \'%s\' na %s';
$lang['hr_HR']['PageCommentInterface.ss']['COMMENTS'] = 'Komentari';
$lang['hr_HR']['PageCommentInterface.ss']['NEXT'] = 'slijedeći';
$lang['hr_HR']['PageCommentInterface.ss']['NOCOMMENTSYET'] = 'Na ovoj stranici nema komentara';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('hu_HU', $lang) && is_array($lang['hu_HU'])) {
$lang['hu_HU'] = array_merge($lang['en_US'], $lang['hu_HU']);
} else {
$lang['hu_HU'] = $lang['en_US'];
}
$lang['hu_HU'] = $lang['en_US'];
$lang['hu_HU']['AssetAdmin']['CHOOSEFILE'] = 'Válassz fájlt';
$lang['hu_HU']['AssetAdmin']['CONTENTMODBY'] = 'A tartalmat módosíthatja';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('it_IT', $lang) && is_array($lang['it_IT'])) {
$lang['it_IT'] = array_merge($lang['en_US'], $lang['it_IT']);
} else {
$lang['it_IT'] = $lang['en_US'];
}
$lang['it_IT'] = $lang['en_US'];
$lang['it_IT']['AssetAdmin']['CHOOSEFILE'] = 'Scegli file';
$lang['it_IT']['AssetAdmin']['CONTENTMODBY'] = 'Contenuto modificabile da';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('nl_NL', $lang) && is_array($lang['nl_NL'])) {
$lang['nl_NL'] = array_merge($lang['en_US'], $lang['nl_NL']);
} else {
$lang['nl_NL'] = $lang['en_US'];
}
$lang['nl_NL'] = $lang['en_US'];
$lang['nl_NL']['AssetAdmin']['CHOOSEFILE'] = 'Kies een bestand ';
$lang['nl_NL']['AssetAdmin']['CONTENTMODBY'] = 'Inhoud bewerkbaar door';

View File

@ -4,17 +4,13 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('pl_PL', $lang) && is_array($lang['pl_PL'])) {
$lang['pl_PL'] = array_merge($lang['en_US'], $lang['pl_PL']);
} else {
$lang['pl_PL'] = $lang['en_US'];
}
$lang['pl_PL'] = $lang['en_US'];
$lang['pl_PL']['AssetAdmin']['CHOOSEFILE'] = 'Wybierz plik';
$lang['pl_PL']['AssetAdmin']['CONTENTMODBY'] = 'Zawartość modyfikowalna przez';
$lang['pl_PL']['AssetAdmin']['CONTENTUSABLEBY'] = 'Zawartość używalna przez ';
$lang['pl_PL']['AssetAdmin']['CREATED'] = 'Wgrany jako pierwszy';
$lang['pl_PL']['AssetAdmin']['DELETEDX'] = 'Usunięto %s plików. %s';
$lang['pl_PL']['AssetAdmin']['CONTENTMODBY'] = 'Zawartość modyfikowana przez';
$lang['pl_PL']['AssetAdmin']['CONTENTUSABLEBY'] = 'Zawartość używana przez ';
$lang['pl_PL']['AssetAdmin']['CREATED'] = 'Pierwsze wgrany';
$lang['pl_PL']['AssetAdmin']['DELETEDX'] = 'Usunięto %s pliki. %s';
$lang['pl_PL']['AssetAdmin']['DELETEUNUSEDTHUMBNAILS'] = 'Usuń nieużywane miniatury';
$lang['pl_PL']['AssetAdmin']['DELSELECTED'] = 'Usuń zaznaczone pliki';
$lang['pl_PL']['AssetAdmin']['DETAILSTAB'] = 'Detale';
@ -22,32 +18,31 @@ $lang['pl_PL']['AssetAdmin']['FILENAME'] = 'Nazwa pliku';
$lang['pl_PL']['AssetAdmin']['FILESREADY'] = 'Pliki gotowe do wgrania';
$lang['pl_PL']['AssetAdmin']['FILESTAB'] = 'Pliki';
$lang['pl_PL']['AssetAdmin']['LASTEDITED'] = 'Ostatni nadpisany ';
$lang['pl_PL']['AssetAdmin']['MOVEDX'] = 'Przeniesiono %s plików';
$lang['pl_PL']['AssetAdmin']['MOVEDX'] = 'Przenieś %s pliki';
$lang['pl_PL']['AssetAdmin']['NEWFOLDER'] = 'Nowy Folder';
$lang['pl_PL']['AssetAdmin']['NOTHINGTOUPLOAD'] = 'Nie ma nic do wgrania';
$lang['pl_PL']['AssetAdmin']['NOWBROKEN'] = 'Te strony mają zepsute linki';
$lang['pl_PL']['AssetAdmin']['NOWBROKEN'] = 'Te strony mają przerwane linki';
$lang['pl_PL']['AssetAdmin']['ONLYADMINS'] = 'Tylko administrator może wgrać %s pliki.';
$lang['pl_PL']['AssetAdmin']['OWNER'] = 'Właściciel';
$lang['pl_PL']['AssetAdmin']['SAVEDFILE'] = 'Zapisano plik %s';
$lang['pl_PL']['AssetAdmin']['SAVEFOLDERNAME'] = 'Zapisz nazwę folderu';
$lang['pl_PL']['AssetAdmin']['TITLE'] = 'Tytuł';
$lang['pl_PL']['AssetAdmin']['TITLE'] = 'Tytul';
$lang['pl_PL']['AssetAdmin']['TOOLARGE'] = '5S jest za duży (%s). Pliki tego typu nie mogą być większe niż %s.';
$lang['pl_PL']['AssetAdmin']['TYPE'] = 'Rodzaj';
$lang['pl_PL']['AssetAdmin']['UNUSEDFILESTAB'] = 'Nieużywane pliki';
$lang['pl_PL']['AssetAdmin']['UNUSEDFILESTITLE'] = 'Nieużywane pliki';
$lang['pl_PL']['AssetAdmin']['UNUSEDTHUMBNAILSTITLE'] = 'Nieużywane miniatury';
$lang['pl_PL']['AssetAdmin']['UPLOAD'] = 'Wgraj pliki z listy poniżej';
$lang['pl_PL']['AssetAdmin']['UPLOADEDX'] = 'Wgrano pliki (%s)';
$lang['pl_PL']['AssetAdmin']['UPLOADEDX'] = 'Wgrano %s pliki';
$lang['pl_PL']['AssetAdmin']['UPLOADTAB'] = 'Wgraj';
$lang['pl_PL']['AssetAdmin']['VIEWASSET'] = 'Zobacz zawartość';
$lang['pl_PL']['AssetAdmin']['VIEWEDITASSET'] = 'Zobacz/Edytuj zawartość';
$lang['pl_PL']['AssetAdmin']['VIEWEDITASSET'] = 'Zobacz/Edytuj stronę';
$lang['pl_PL']['AssetAdmin_left.ss']['CREATE'] = 'Stwórz';
$lang['pl_PL']['AssetAdmin_left.ss']['DELETE'] = 'Usuń ...';
$lang['pl_PL']['AssetAdmin_left.ss']['DELFOLDERS'] = 'Usuń zaznaczone foldery';
$lang['pl_PL']['AssetAdmin_left.ss']['FOLDERS'] = 'Foldery';
$lang['pl_PL']['AssetAdmin_left.ss']['GO'] = 'Idź';
$lang['pl_PL']['AssetAdmin_left.ss']['SELECTTODEL'] = 'Wybierz foldery, które chcesz usunąć i kliknij przycisk poniżej';
$lang['pl_PL']['AssetAdmin_left.ss']['TOREORG'] = 'Aby zreorganizować twoje foldery, przenieś je w wybrane miejsca';
$lang['pl_PL']['AssetAdmin_left.ss']['TOREORG'] = 'Aby zreorganizować twoje foldery, przenieś na zewnątrz wybrane';
$lang['pl_PL']['AssetAdmin_right.ss']['CHOOSEPAGE'] = 'Proszę wybrać stronę po lewej';
$lang['pl_PL']['AssetAdmin_right.ss']['WELCOME'] = 'Witamy w ';
$lang['pl_PL']['AssetAdmin_uploadiframe.ss']['PERMFAILED'] = 'Nie masz uprawnień do wgrania plików do tego folderu ';
@ -55,22 +50,22 @@ $lang['pl_PL']['AssetTableField']['CREATED'] = 'Pierwszy wgrany';
$lang['pl_PL']['AssetTableField']['DIM'] = 'Rozmiar';
$lang['pl_PL']['AssetTableField']['FILENAME'] = 'Nazwa pliku';
$lang['pl_PL']['AssetTableField']['LASTEDIT'] = 'Ostatnia zmiana';
$lang['pl_PL']['AssetTableField']['NOLINKS'] = 'Do tego pliku nie prowadzą żadne odnośniki.';
$lang['pl_PL']['AssetTableField']['NOLINKS'] = 'Ten plik jest zlinkowany do innej strony';
$lang['pl_PL']['AssetTableField']['OWNER'] = 'Właściciel';
$lang['pl_PL']['AssetTableField']['PAGESLINKING'] = 'Następujące strony zawierają linki do tej strony:';
$lang['pl_PL']['AssetTableField']['PAGESLINKING'] = 'Link kolejnej strony do tego pliku:';
$lang['pl_PL']['AssetTableField']['SIZE'] = 'Rozmiar';
$lang['pl_PL']['AssetTableField.ss']['DELFILE'] = 'Usuń ten plik';
$lang['pl_PL']['AssetTableField.ss']['DRAGTOFOLDER'] = 'Przenieś folder do pliku po lewej';
$lang['pl_PL']['AssetTableField']['TITLE'] = 'Tytuł';
$lang['pl_PL']['AssetTableField']['TYPE'] = 'Rodzaj';
$lang['pl_PL']['BulkLoaderAdmin']['CONFIRMBULK'] = 'Potwierdź dużą ilość załadowanych';
$lang['pl_PL']['BulkLoaderAdmin']['CSVFILE'] = 'Plik CSV';
$lang['pl_PL']['BulkLoaderAdmin']['DATALOADED'] = 'Te dane zostały załadowane w';
$lang['pl_PL']['BulkLoaderAdmin']['CSVFILE'] = 'CSV plik';
$lang['pl_PL']['BulkLoaderAdmin']['DATALOADED'] = 'Te dane zosta załadowane w';
$lang['pl_PL']['BulkLoaderAdmin']['PRESSCNT'] = 'Naciśnij kontynuuj aby wgrać dane do';
$lang['pl_PL']['BulkLoaderAdmin']['PREVIEW'] = 'Podgląd';
$lang['pl_PL']['BulkLoaderAdmin_left.ss']['BATCHEF'] = 'Otwórz plik funkcji';
$lang['pl_PL']['BulkLoaderAdmin_left.ss']['FUNCTIONS'] = 'Funkcje';
$lang['pl_PL']['BulkLoaderAdmin_preview.ss']['RES'] = 'Wyniki';
$lang['pl_PL']['BulkLoaderAdmin_preview.ss']['RES'] = 'Rezultaty';
$lang['pl_PL']['CMSLeft.ss']['DELPAGE'] = 'Usuń strony ...';
$lang['pl_PL']['CMSLeft.ss']['DELPAGES'] = 'Usuń zaznaczone strony';
$lang['pl_PL']['CMSLeft.ss']['GO'] = 'Idż';
@ -81,15 +76,15 @@ $lang['pl_PL']['CMSMain']['CANCEL'] = 'Anuluj';
$lang['pl_PL']['CMSMain']['CHOOSEREPORT'] = '(Wybierz raport)';
$lang['pl_PL']['CMSMain']['COMPARINGV'] = 'Porównaj wersję #%d i #%d';
$lang['pl_PL']['CMSMain']['COPYPUBTOSTAGE'] = 'Naprawdę chcesz skopiować publikowaną treść tej strony?';
$lang['pl_PL']['CMSMain']['DELETEFP'] = 'usuń z opublikowanej strony';
$lang['pl_PL']['CMSMain']['DELETEFP'] = 'usuń z opublikowanych stron';
$lang['pl_PL']['CMSMain']['EMAIL'] = 'E-mail';
$lang['pl_PL']['CMSMain']['GO'] = 'Idź';
$lang['pl_PL']['CMSMain']['METADESCOPT'] = 'Opis';
$lang['pl_PL']['CMSMain']['METAKEYWORDSOPT'] = 'Słowa kluczowe';
$lang['pl_PL']['CMSMain']['METAKEYWORDSOPT'] = 'Klucz';
$lang['pl_PL']['CMSMain']['NEW'] = 'Nowy';
$lang['pl_PL']['CMSMain']['NOCONTENT'] = 'brak zawartości';
$lang['pl_PL']['CMSMain']['NOTHINGASSIGNED'] = 'Nie masz nic przydzielonego';
$lang['pl_PL']['CMSMain']['NOWAITINGON'] = 'Obecnie nie oczekujesz na nikogo.';
$lang['pl_PL']['CMSMain']['NOWAITINGON'] = 'Nie czekaj na nikogo';
$lang['pl_PL']['CMSMain']['NOWBROKEN'] = 'Poniższe strony mają nieprawidłowe linki:';
$lang['pl_PL']['CMSMain']['NOWBROKEN2'] = 'Właściciele zostaną powiadomieni mailem i naprawią strony';
$lang['pl_PL']['CMSMain']['OK'] = 'OK';
@ -100,33 +95,32 @@ $lang['pl_PL']['CMSMain']['PAGESDEL'] = 'Usunięto strony %d';
$lang['pl_PL']['CMSMain']['PAGESPUB'] = '%d opublikowane strony';
$lang['pl_PL']['CMSMain']['PAGETYPEOPT'] = 'Typ strony';
$lang['pl_PL']['CMSMain']['PRINT'] = 'Drukuj';
$lang['pl_PL']['CMSMain']['PUBALLCONFIRM'] = 'Opublikuj każdą stronę witryny, kopiując zawartość z brudnopisu';
$lang['pl_PL']['CMSMain']['PUBALLFUN'] = 'Funkcja "Opublikuj wszystkie"';
$lang['pl_PL']['CMSMain']['PUBALLFUN2'] = 'Naciśnięcie przycisku jest równoznaczne z naciśnięciem "publikuj" każdej strony. Używaj tego gdy zamierzasz edytować całą zawartość, np. kiedy strona jest tworzona po raz pierwszy';
$lang['pl_PL']['CMSMain']['PUBPAGES'] = 'Gotowe: Opublikowano %d strony';
$lang['pl_PL']['CMSMain']['PUBALLFUN2'] = 'Naciśnięcie przycisku jest równoznaczne z naciśnięciem "publikuj" każdej strony. Używaj tego gdy zamierzasz edytować całą zawartość, np. kiedy strona jest budowana po raz pierwszy';
$lang['pl_PL']['CMSMain']['PUBPAGES'] = 'Gotowe: Opublikowane %d strony';
$lang['pl_PL']['CMSMain']['REMOVEDFD'] = 'Usuń ze strony roboczej';
$lang['pl_PL']['CMSMain']['REMOVEDPAGE'] = 'Usunięto \'%s\' z opublikowanej strony';
$lang['pl_PL']['CMSMain']['REMOVEDPAGE'] = 'Zmień \'%s\' z publikowanej wersji';
$lang['pl_PL']['CMSMain']['RESTORE'] = 'Odzyskaj';
$lang['pl_PL']['CMSMain']['RESTORED'] = 'Odzyskiwanie\'%s\' udane';
$lang['pl_PL']['CMSMain']['ROLLBACK'] = 'Wróć do tej wersji.';
$lang['pl_PL']['CMSMain']['ROLLBACK'] = 'Wróć do wersji.';
$lang['pl_PL']['CMSMain']['ROLLEDBACKPUB'] = 'Poprzednia opublikowana wersja. Nowy numer wersji to #%d';
$lang['pl_PL']['CMSMain']['ROLLEDBACKVERSION'] = 'Poprzednia wersja to #%d. Nowy numer wersji to #%d';
$lang['pl_PL']['CMSMain']['SAVE'] = 'Zapisz';
$lang['pl_PL']['CMSMain']['SENTTO'] = 'Wysłano do %s %s po akceptację';
$lang['pl_PL']['CMSMain']['STATUSOPT'] = 'Status';
$lang['pl_PL']['CMSMain']['SENTTO'] = 'Wyślij do %s %s po akceptację';
$lang['pl_PL']['CMSMain']['STATUSOPT'] = 'Stauts';
$lang['pl_PL']['CMSMain']['TOTALPAGES'] = 'W sumie stron:';
$lang['pl_PL']['CMSMain']['VERSIONSNOPAGE'] = 'Nie można znaleźć strony #%d';
$lang['pl_PL']['CMSMain']['VIEWING'] = 'Oglądasz wersję #%d, stworzoną %s';
$lang['pl_PL']['CMSMain']['VISITRESTORE'] = 'zobacz restorepage/(ID)';
$lang['pl_PL']['CMSMain']['VIEWING'] = 'Widzisz wersję #%d, stworzoną %s';
$lang['pl_PL']['CMSMain']['VISITRESTORE'] = 'zobacz zrekonstruowane/(ID)';
$lang['pl_PL']['CMSMain']['WAITINGON'] = 'Poczekaj na innych ludzi pracujących nad tymi <b>%</b> stronami';
$lang['pl_PL']['CMSMain']['WORKTODO'] = 'Pracujesz na tych <b>%</b> stronach';
$lang['pl_PL']['CMSMain_left.ss']['ADDEDNOTPUB'] = 'Dodałeś do oczekujących i jeszcze nie opublikowanych stron';
$lang['pl_PL']['CMSMain_left.ss']['ADDEDNOTPUB'] = 'Dodałeś do oczekujących stron i nie opublikowałeś jeszcze';
$lang['pl_PL']['CMSMain_left.ss']['ADDSEARCHCRITERIA'] = 'Dodaj kryterium ...';
$lang['pl_PL']['CMSMain_left.ss']['BATCHACTIONS'] = 'Akcja pliku';
$lang['pl_PL']['CMSMain_left.ss']['CHANGED'] = 'zmienione';
$lang['pl_PL']['CMSMain_left.ss']['CLOSEBOX'] = 'kliknij aby zamknąć';
$lang['pl_PL']['CMSMain_left.ss']['COMMENTS'] = 'Komentarze';
$lang['pl_PL']['CMSMain_left.ss']['COMPAREMODE'] = 'Tryb porównania (wybierz 2 poniżej)';
$lang['pl_PL']['CMSMain_left.ss']['COMPAREMODE'] = 'Porównaj tryb (kliknij 2 razy poniżej)';
$lang['pl_PL']['CMSMain_left.ss']['CREATE'] = 'Stwórz';
$lang['pl_PL']['CMSMain_left.ss']['DEL'] = 'usunięte';
$lang['pl_PL']['CMSMain_left.ss']['DELETECONFIRM'] = 'Usuń zaznaczone strony';
@ -138,12 +132,11 @@ $lang['pl_PL']['CMSMain_left.ss']['GO'] = 'idź';
$lang['pl_PL']['CMSMain_left.ss']['KEY'] = 'Klucz:';
$lang['pl_PL']['CMSMain_left.ss']['NEW'] = 'nowy';
$lang['pl_PL']['CMSMain_left.ss']['OPENBOX'] = 'kliknij aby otworzyć';
$lang['pl_PL']['CMSMain_left.ss']['PAGEVERSIONH'] = 'Wersja archiwalna strony';
$lang['pl_PL']['CMSMain_left.ss']['PAGEVERSIONH'] = 'Wersja historyczna strony';
$lang['pl_PL']['CMSMain_left.ss']['PUBLISHCONFIRM'] = 'Publikuj zaznaczone strony';
$lang['pl_PL']['CMSMain_left.ss']['SEARCH'] = 'Szukaj';
$lang['pl_PL']['CMSMain_left.ss']['SEARCHTITLE'] = 'Szukaj przez URL, Tytuł, Tytuł Menu i Zawartość';
$lang['pl_PL']['CMSMain_left.ss']['SELECTPAGESACTIONS'] = 'Zaznacz strony które chcesz zmienić i kliknij polecenie: ';
$lang['pl_PL']['CMSMain_left.ss']['SELECTPAGESDUP'] = 'Wybierz strony, które chcesz zduplikować, to, czy ich podstrony powinny zostać uwzględnione oraz gdzie chcesz umieścić duplikaty';
$lang['pl_PL']['CMSMain_left.ss']['SHOWONLYCHANGED'] = 'Pokaż tylko zmienione strony';
$lang['pl_PL']['CMSMain_left.ss']['SHOWUNPUB'] = 'pokaż nieopublikowane wersje';
$lang['pl_PL']['CMSMain_left.ss']['SITECONTENT TITLE'] = 'Zawartość i struktura strony';
@ -160,13 +153,13 @@ $lang['pl_PL']['CMSMain_right.ss']['SUBMIT'] = 'przedstaw do akceptacji';
$lang['pl_PL']['CMSMain_right.ss']['WELCOMETO'] = 'Witamy w ';
$lang['pl_PL']['CMSMain_versions.ss']['AUTHOR'] = 'Autor';
$lang['pl_PL']['CMSMain_versions.ss']['NOTPUB'] = 'Nie opublikowany';
$lang['pl_PL']['CMSMain_versions.ss']['PUBR'] = 'Publikujący';
$lang['pl_PL']['CMSMain_versions.ss']['PUBR'] = 'Opublikowany';
$lang['pl_PL']['CMSMain_versions.ss']['UNKNOWN'] = 'Nieznany';
$lang['pl_PL']['CMSMain_versions.ss']['WHEN'] = 'Kiedy';
$lang['pl_PL']['CMSRight.ss']['CHOOSEPAGE'] = 'Proszę wybrać stronę po lewej';
$lang['pl_PL']['CMSRight.ss']['ECONTENT'] = 'Edytuj zawartość';
$lang['pl_PL']['CMSRight.ss']['WELCOMETO'] = 'Witamy w';
$lang['pl_PL']['CommentList.ss']['CREATEDW'] = 'Komentarze są tworzone za każdym razem, gdy jest wykonywane jedno z poleceń - Opublikuj, Odrzuć, Zatwierdź';
$lang['pl_PL']['CommentList.ss']['CREATEDW'] = 'Komentarze są tworzone każdorazowo gdy \'przepływ zadań\' jest przedsiębrane - Opublikuj, Odrzuć, Zatwierdź';
$lang['pl_PL']['CommentList.ss']['NOCOM'] = 'Nie ma komentarzy na tej stronie';
$lang['pl_PL']['GenericDataAdmin_left.ss']['ADDLISTING'] = 'Dodaj listę';
$lang['pl_PL']['GenericDataAdmin_left.ss']['SEARCHLISTINGS'] = 'Szukaj listy';
@ -184,30 +177,30 @@ $lang['pl_PL']['LeftAndMain']['CHANGEDURL'] = 'Zmieniony URL to \'%s\'';
$lang['pl_PL']['LeftAndMain']['COMMENTS'] = 'Komentarze';
$lang['pl_PL']['LeftAndMain']['FILESIMAGES'] = 'Pliki i Obrazy';
$lang['pl_PL']['LeftAndMain']['HELP'] = 'Pomoc';
$lang['pl_PL']['LeftAndMain']['NEWSLETTERS'] = 'Newslettery';
$lang['pl_PL']['LeftAndMain']['NEWSLETTERS'] = 'Newsletter';
$lang['pl_PL']['LeftAndMain']['PAGETYPE'] = 'Rodzaj strony:';
$lang['pl_PL']['LeftAndMain']['PERMAGAIN'] = 'Zostałeś wylogowany z CMSa. Jeśli chcesz zalogować się ponownie, wpisz username i hasło poniżej';
$lang['pl_PL']['LeftAndMain']['PERMALREADY'] = 'Niestety nie masz dostępu do tej części CMS. Jeśli chcesz zaloguj się jako inny użytkownik poniżej.';
$lang['pl_PL']['LeftAndMain']['PERMDEFAULT'] = 'Proszę wybrać metodę identyfikacji i wpisać swoje dane, aby uruchomić CMSa.';
$lang['pl_PL']['LeftAndMain']['PLEASESAVE'] = 'Proszę zapisać stronę: Ta strona nie może być nadpisana ponieważ nie została jeszcze zapisana.';
$lang['pl_PL']['LeftAndMain']['PERMAGAIN'] = 'Zostałeś zalogowany do CMS. Jeśli chcesz zalogować się ponownie, wpisz username i hasło poniżej';
$lang['pl_PL']['LeftAndMain']['PERMALREADY'] = 'Przepraszam, ale nie masz dostępu do tej części CMS. Jeśli chcesz zaloguj się jako inny użytkownik poniżej.';
$lang['pl_PL']['LeftAndMain']['PERMDEFAULT'] = 'Proszę wybrać metodę potwierdzenia autentyczności i uruchomić referencje dostępu do CMS.';
$lang['pl_PL']['LeftAndMain']['PLEASESAVE'] = 'Proszę zapisać stronę: Ta strona nie może być nadpisana ponieważ została już zapisana.';
$lang['pl_PL']['LeftAndMain']['REPORTS'] = 'Raporty';
$lang['pl_PL']['LeftAndMain']['REQUESTERROR'] = 'Błąd zapytania';
$lang['pl_PL']['LeftAndMain']['REQUESTERROR'] = 'Błąd żądania';
$lang['pl_PL']['LeftAndMain']['SAVED'] = 'zapisane';
$lang['pl_PL']['LeftAndMain']['SAVEDUP'] = 'Zapisane';
$lang['pl_PL']['LeftAndMain']['SECURITY'] = 'Bezpieczeństwo';
$lang['pl_PL']['LeftAndMain']['SITECONTENT'] = 'Zawartość strony';
$lang['pl_PL']['LeftAndMain']['SITECONTENTLEFT'] = 'Zawartość strony';
$lang['pl_PL']['LeftAndMain.ss']['APPVERSIONTEXT1'] = 'To jest';
$lang['pl_PL']['LeftAndMain.ss']['APPVERSIONTEXT2'] = 'wersja, której aktualnie używasz, jest gałęzią CVS';
$lang['pl_PL']['LeftAndMain.ss']['APPVERSIONTEXT2'] = 'wersja, której aktualnie używasz, technicznie jest gałęzią CVS';
$lang['pl_PL']['LeftAndMain.ss']['ARCHS'] = 'Archiwalne strony';
$lang['pl_PL']['LeftAndMain.ss']['DRAFTS'] = 'Wersje robocze';
$lang['pl_PL']['LeftAndMain.ss']['EDIT'] = 'Edytuj';
$lang['pl_PL']['LeftAndMain.ss']['EDITPROFILE'] = 'Profil';
$lang['pl_PL']['LeftAndMain.ss']['LOADING'] = 'Wczytywanie...';
$lang['pl_PL']['LeftAndMain.ss']['LOADING'] = 'Wczytuję ...';
$lang['pl_PL']['LeftAndMain.ss']['LOGGEDINAS'] = 'Zalogowany jako';
$lang['pl_PL']['LeftAndMain.ss']['LOGOUT'] = 'Wyloguj';
$lang['pl_PL']['LeftAndMain.ss']['PUBLIS'] = 'Opublikowane strony';
$lang['pl_PL']['LeftAndMain.ss']['SSWEB'] = 'Strona Silverstripe';
$lang['pl_PL']['LeftAndMain.ss']['SSWEB'] = 'Silverstripe Website';
$lang['pl_PL']['LeftAndMain.ss']['SWITCHTO'] = 'Przełącz na:';
$lang['pl_PL']['LeftAndMain.ss']['VIEWPAGEIN'] = 'Widok strony:';
$lang['pl_PL']['LeftAndMain']['STATISTICS'] = 'Statystyki';
@ -215,16 +208,16 @@ $lang['pl_PL']['LeftAndMain']['STATUSTO'] = 'Status zmieniony na \'%s\'';
$lang['pl_PL']['LeftAndMain']['TREESITECONTENT'] = 'Zawartość strony';
$lang['pl_PL']['MemberList']['ADD'] = 'Dodaj';
$lang['pl_PL']['MemberList']['EMAIL'] = 'Email';
$lang['pl_PL']['MemberList']['FILTERBYG'] = 'Szukaj według grup';
$lang['pl_PL']['MemberList']['FN'] = 'Imię';
$lang['pl_PL']['MemberList']['FILTERBYG'] = 'Szukaj w grupach';
$lang['pl_PL']['MemberList']['FN'] = 'Pierwsza kategoria';
$lang['pl_PL']['MemberList']['PASSWD'] = 'Hasło';
$lang['pl_PL']['MemberList']['SEARCH'] = 'Szukaj';
$lang['pl_PL']['MemberList']['SN'] = 'Nazwisko';
$lang['pl_PL']['MemberList']['SN'] = 'Podkategoria';
$lang['pl_PL']['MemberList.ss']['FILTER'] = 'Filtr';
$lang['pl_PL']['MemberList_Table.ss']['EMAIL'] = 'Adres e-mail';
$lang['pl_PL']['MemberList_Table.ss']['FN'] = 'Imię';
$lang['pl_PL']['MemberList_Table.ss']['EMAIL'] = 'Email adres';
$lang['pl_PL']['MemberList_Table.ss']['FN'] = 'Pierwsza kategoria';
$lang['pl_PL']['MemberList_Table.ss']['PASSWD'] = 'Hasło';
$lang['pl_PL']['MemberList_Table.ss']['SN'] = 'Nazwisko';
$lang['pl_PL']['MemberList_Table.ss']['SN'] = 'Podkategoria';
$lang['pl_PL']['MemberTableField']['ADD'] = 'Dodaj';
$lang['pl_PL']['MemberTableField']['ADDEDTOGROUP'] = 'Dodaj użytkownika do grupy';
$lang['pl_PL']['MemberTableField.ss']['ADDNEW'] = 'Dodaj nowość';
@ -236,7 +229,7 @@ $lang['pl_PL']['NewsletterAdmin']['MEWDRAFTMEWSL'] = 'Nowe oczekujące newslette
$lang['pl_PL']['NewsletterAdmin']['NEWLIST'] = 'Nowa lista mailingowa';
$lang['pl_PL']['NewsletterAdmin']['NEWNEWSLTYPE'] = 'Nowy rodzaj newslettera';
$lang['pl_PL']['NewsletterAdmin']['NEWSLTYPE'] = 'Rodzaj newslettera';
$lang['pl_PL']['NewsletterAdmin']['PLEASEENTERMAIL'] = 'Proszę wprowadź adres e-mail';
$lang['pl_PL']['NewsletterAdmin']['PLEASEENTERMAIL'] = 'Proszę wprowadź email adres';
$lang['pl_PL']['NewsletterAdmin']['RESEND'] = 'Prześlij ponownie';
$lang['pl_PL']['NewsletterAdmin']['SAVE'] = 'Zapisz';
$lang['pl_PL']['NewsletterAdmin']['SAVED'] = 'Zapisane';
@ -244,7 +237,7 @@ $lang['pl_PL']['NewsletterAdmin']['SEND'] = 'Wyślij ...';
$lang['pl_PL']['NewsletterAdmin']['SENDING'] = 'Wysyłanie emaili ...';
$lang['pl_PL']['NewsletterAdmin']['SENTTESTTO'] = 'Wysłano test do';
$lang['pl_PL']['NewsletterAdmin']['SHOWCONTENTS'] = 'Pokaż zawartość';
$lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['EMADD'] = 'Adres e-mail';
$lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['EMADD'] = 'Adres email';
$lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['HAVEBOUNCED'] = 'Email został odrzucony';
$lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['NOBOUNCED'] = 'Brak odrzuconych maili';
$lang['pl_PL']['NewsletterAdmin_BouncedList.ss']['UNAME'] = 'Nazwa użytkownika';
@ -254,7 +247,7 @@ $lang['pl_PL']['NewsletterAdmin_left.ss']['CREATE'] = 'Stwórz ...';
$lang['pl_PL']['NewsletterAdmin_left.ss']['DEL'] = 'Usuń ...';
$lang['pl_PL']['NewsletterAdmin_left.ss']['DELETEDRAFTS'] = 'Usuń zaznaczone wersje robocze';
$lang['pl_PL']['NewsletterAdmin_left.ss']['GO'] = 'Idź';
$lang['pl_PL']['NewsletterAdmin_left.ss']['NEWSLETTERS'] = 'Newslettery';
$lang['pl_PL']['NewsletterAdmin_left.ss']['NEWSLETTERS'] = 'Newsletter';
$lang['pl_PL']['NewsletterAdmin_left.ss']['SELECTDRAFTS'] = 'Wybierz wersje robocze które chcesz usunąć i kliknij przycisk poniżej';
$lang['pl_PL']['NewsletterAdmin_right.ss']['CANCEL'] = 'Anuluj';
$lang['pl_PL']['NewsletterAdmin_right.ss']['ENTIRE'] = 'Wyślij do całej listy mailingowej';
@ -266,18 +259,18 @@ $lang['pl_PL']['NewsletterAdmin_right.ss']['WELCOME2'] = 'Administracja newslett
$lang['pl_PL']['NewsletterAdmin_SiteTree.ss']['DRAFTS'] = 'Oczekujące';
$lang['pl_PL']['NewsletterAdmin_SiteTree.ss']['MAILLIST'] = 'Lista mailingowa';
$lang['pl_PL']['NewsletterAdmin_SiteTree.ss']['SENT'] = 'Wyślij pozycję';
$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['NOUNSUB'] = 'Nie ma użytkowników nie zapisanych do tego newslettera';
$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['NOUNSUB'] = 'Nie ma użytkowników nieprenumerujących tego newslettera';
$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['UNAME'] = 'Nazwa użytkownika';
$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['UNSUBON'] = 'Nie zapisany';
$lang['pl_PL']['NewsletterAdmin_UnsubscribedList.ss']['UNSUBON'] = 'Niezaprenumerowany';
$lang['pl_PL']['NewsletterList.ss']['CHOOSEDRAFT1'] = 'Proszę wybrać wersje robocze po lewej lub';
$lang['pl_PL']['NewsletterList.ss']['CHOOSEDRAFT2'] = 'dodaj jeden';
$lang['pl_PL']['NewsletterList.ss']['CHOOSESENT'] = 'Proszę wybrać pozycję wyślij po lewej';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['CHANGED'] = 'Ilość zmienionych detali:';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['CHANGED'] = 'Numer zmienionych detali:';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['IMPORTED'] = 'Nowi użytkownicy zaimportowani:';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['IMPORTNEW'] = 'zaimportowani nowi użytkownicy';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['SEC'] = 'sekundy';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['SEC'] = 'drudzy';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['SKIPPED'] = 'Archiwalne dokumenty:';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['TIME'] = 'Czas zużyty:';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['TIME'] = 'Lista pobranych: ';
$lang['pl_PL']['Newsletter_RecipientImportField.ss']['UPDATED'] = 'Uaktualnieni użytkownicy:';
$lang['pl_PL']['Newsletter_RecipientImportField_Table.ss']['CONTENTSOF'] = 'Zawartość';
$lang['pl_PL']['Newsletter_RecipientImportField_Table.ss']['NO'] = 'Anuluj';
@ -285,14 +278,10 @@ $lang['pl_PL']['Newsletter_RecipientImportField_Table.ss']['RECIMPORTED'] = 'Odb
$lang['pl_PL']['Newsletter_RecipientImportField_Table.ss']['YES'] = 'Potwierdź';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['DATE'] = 'Data';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['EMAIL'] = 'Email';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['FN'] = 'Imię';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['NEWSNEVERSENT'] = 'Newsletter nigdy nie b wysłany do następujących użytkowników';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['FN'] = 'Pierwsza kategoria';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['NEWSNEVERSENT'] = 'Newsletter nigdy nie będzie wysłany do następujących użytkowników';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['RES'] = 'Rezultat';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SENDBOUNCED'] = 'Wysłanie do następujących odbiorców zostało odrzucone';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SENDFAIL'] = 'Wysyłanie do następujących odbiorców nie powiodło się';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SENTOK'] = 'Wysyłanie do następujących odbiorców powiodło się';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SN'] = 'Nazwisko';
$lang['pl_PL']['PageComment']['COMMENTBY'] = 'Komentarz \'%s\' do %s';
$lang['pl_PL']['Newsletter_SentStatusReport.ss']['SN'] = 'Podkategoria';
$lang['pl_PL']['PageCommentInterface.ss']['COMMENTS'] = 'Komentarze';
$lang['pl_PL']['PageCommentInterface.ss']['NEXT'] = 'następny';
$lang['pl_PL']['PageCommentInterface.ss']['NOCOMMENTSYET'] = 'Nikt nie skomentował jeszcze tej strony';
@ -304,7 +293,7 @@ $lang['pl_PL']['PageCommentInterface_singlecomment.ss']['PBY'] = 'Dodane przez';
$lang['pl_PL']['PageCommentInterface_singlecomment.ss']['REMCOM'] = 'zmień ten komentarz';
$lang['pl_PL']['ReportAdmin_left.ss']['REPORTS'] = 'Raporty';
$lang['pl_PL']['ReportAdmin_right.ss']['WELCOME1'] = 'Witamy w';
$lang['pl_PL']['ReportAdmin_right.ss']['WELCOME2'] = 'Sekcja raportów. Proszę wybrać jeden z raportów po lewej';
$lang['pl_PL']['ReportAdmin_right.ss']['WELCOME2'] = 'Raport sesji. Proszę wybrać określony raport po lewej';
$lang['pl_PL']['ReportAdmin_SiteTree.ss']['REPORTS'] = 'Raporty';
$lang['pl_PL']['SecurityAdmin']['ADDMEMBER'] = 'Dodaj użytkownika';
$lang['pl_PL']['SecurityAdmin']['ADVANCEDONLY'] = 'Ta sekcja przeznaczona jest tylko dla zaawansowanych użytkowników. Zobacz <a href="http://doc.silverstripe.com/doku.php?id=permissions:codes" target="_blank">tę stronę</a> aby uzyskać więcej informacji.';
@ -317,14 +306,13 @@ $lang['pl_PL']['SecurityAdmin_left.ss']['DELGROUPS'] = 'Usuń zaznaczone grupy';
$lang['pl_PL']['SecurityAdmin_left.ss']['GO'] = 'Idź';
$lang['pl_PL']['SecurityAdmin_left.ss']['SECGROUPS'] = 'Grupa bezpieczeństwa';
$lang['pl_PL']['SecurityAdmin_left.ss']['SELECT'] = 'Zaznacz strony które chcesz usunąć i kliknij przycisk poniżej';
$lang['pl_PL']['SecurityAdmin_left.ss']['TOREORG'] = 'Aby zmienić układ witryny, przeciągnij strony w odpowiadające Ci miejsca.';
$lang['pl_PL']['SecurityAdmin_right.ss']['WELCOME1'] = 'Witamy w';
$lang['pl_PL']['SecurityAdmin_right.ss']['WELCOME2'] = 'Sekcja administracji bezpieczeństwem. Proszę wybrać jedną z grup po lewej';
$lang['pl_PL']['SecurityAdmin_right.ss']['WELCOME2'] = 'Administracja sekcją bezpieczeństwa. Proszę wybrać grupę po lewej';
$lang['pl_PL']['SideReport']['EMPTYPAGES'] = 'Puste strony';
$lang['pl_PL']['SideReport']['LAST2WEEKS'] = 'Strony zmienione w ostatnich 2 tygodniach';
$lang['pl_PL']['SideReport']['REPEMPTY'] = '%s raport jest pusty';
$lang['pl_PL']['StaticExporter']['BASEURL'] = 'Podstawowy URL';
$lang['pl_PL']['StaticExporter']['EXPORTTO'] = 'Eksportuj do tego folderu';
$lang['pl_PL']['StaticExporter']['EXPORTTO'] = 'Eksportuj ten folder';
$lang['pl_PL']['StaticExporter']['FOLDEREXPORT'] = 'Folder przeniesiony do';
$lang['pl_PL']['StaticExporter']['NAME'] = 'Statyczny eksport';
$lang['pl_PL']['StaticExporter']['ONETHATEXISTS'] = 'Proszę wybierz dostępny folder';
@ -338,6 +326,6 @@ $lang['pl_PL']['ThumbnailStripField.ss']['CHOOSEFOLDER'] = '(Wybierz powyższy f
';
$lang['pl_PL']['ViewArchivedEmail.ss']['CANACCESS'] = 'Masz dostęp do archiwalnej strony pod adresem:';
$lang['pl_PL']['ViewArchivedEmail.ss']['HAVEASKED'] = 'Zobacz zawartość naszej strony na';
$lang['pl_PL']['WaitingOn.ss']['ATO'] = 'przypisane do';
$lang['pl_PL']['WaitingOn.ss']['ATO'] = 'wyznaczone do';
?>

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('pt_BR', $lang) && is_array($lang['pt_BR'])) {
$lang['pt_BR'] = array_merge($lang['en_US'], $lang['pt_BR']);
} else {
$lang['pt_BR'] = $lang['en_US'];
}
$lang['pt_BR'] = $lang['en_US'];
$lang['pt_BR']['AssetAdmin']['CHOOSEFILE'] = 'Selecione Arquivo';
$lang['pt_BR']['AssetAdmin']['CONTENTMODBY'] = 'Conteúdos modificáveis por';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('pt_PT', $lang) && is_array($lang['pt_PT'])) {
$lang['pt_PT'] = array_merge($lang['en_US'], $lang['pt_PT']);
} else {
$lang['pt_PT'] = $lang['en_US'];
}
$lang['pt_PT'] = $lang['en_US'];
$lang['pt_PT']['AssetAdmin']['CHOOSEFILE'] = 'Escolha ficheiro ';
$lang['pt_PT']['AssetAdmin']['CONTENTMODBY'] = 'Conteúdo modificável por';
@ -349,321 +345,4 @@ $lang['pt_PT']['ViewArchivedEmail.ss']['CANACCESS'] = 'Pode aceder ao site arqui
$lang['pt_PT']['ViewArchivedEmail.ss']['HAVEASKED'] = 'Pediu para ver o conteúdo do seu site em';
$lang['pt_PT']['WaitingOn.ss']['ATO'] = 'atribuído a';
// --- New New New
$lang['pt_PT']['Page']['SINGULARNAME'] = 'Página';
$lang['pt_PT']['Page']['PLURALNAME'] = 'Páginas';
$lang['pt_PT']['ErrorPage']['SINGULARNAME'] = 'Página de Erro';
$lang['pt_PT']['ErrorPage']['PLURALNAME'] = 'Páginas de Erro';
$lang['pt_PT']['UserDefinedForm']['SINGULARNAME'] = 'Formulário Definido pelo Utilizador';
$lang['pt_PT']['UserDefinedForm']['PLURALNAME'] = 'Formulários Definidos pelo Utilizador';
$lang['pt_PT']['RedirectorPage']['SINGULARNAME'] = 'Página de Redireccionamento';
$lang['pt_PT']['RedirectorPage']['PLURALNAME'] = 'Páginas de Redireccionamento';
$lang['pt_PT']['VirtualPage']['SINGULARNAME'] = 'Página Virtual';
$lang['pt_PT']['VirtualPage']['PLURALNAME'] = 'Páginas Virtuais';
$lang['pt_PT']['SubscribeForm']['SINGULARNAME'] = 'Página de Subscrição';
$lang['pt_PT']['SubscribeForm']['PLURALNAME'] = 'Páginas de Subscrição';
// ThumbnailStripField.php
$lang['pt_PT']['ThumbnailStripField']['NOIMAGESFOUND'] = 'Nenhuma imagem encontrada em';
// StatisticsAdmin.php
$lang['pt_PT']['StatisticsAdmin']['WELCOME'] = 'Seleccione um tipo de relatório na esquerda para ver as estatísticas do site mais detalhadamente';
// SecurityAdmin.php
$lang['pt_PT']['SecurityAdmin']['MEMBERS'] = 'Membros';
$lang['pt_PT']['SecurityAdmin']['GROUPNAME'] = 'Nome do Grupo';
$lang['pt_PT']['SecurityAdmin']['PERMISSIONS'] = 'Permissões';
$lang['pt_PT']['SecurityAdmin']['CODE'] = 'Código';
$lang['pt_PT']['SecurityAdmin']['OPTIONALID'] = 'ID Opcional';
$lang['pt_PT']['SecurityAdmin']['EDITPERMISSIONS'] = 'Editar permissões em cada grupo';
// NewsletterAdmin.php
$lang['pt_PT']['NewsletterAdmin']['NLSETTINGS'] = 'Definições da Newsletter';
$lang['pt_PT']['NewsletterAdmin']['TEMPLATE'] = 'Modelo';
$lang['pt_PT']['NewsletterAdmin']['SAVE'] = 'Gravar';
$lang['pt_PT']['NewsletterAdmin']['RECIPIENTS'] = 'Recipientes';
$lang['pt_PT']['NewsletterAdmin']['IMPORT'] = 'Importar';
$lang['pt_PT']['NewsletterAdmin']['UNSUBSCRIBERS'] = 'Subscrições Removidas';
$lang['pt_PT']['NewsletterAdmin']['BOUNCED'] = 'Devolvidos';
$lang['pt_PT']['NewsletterAdmin']['REMOVEDSUCCESS'] = 'foi removido da lista de email';
$lang['pt_PT']['NewsletterAdmin']['NONLSPECIFIED'] = 'Nenhuma lista de email especificada';
$lang['pt_PT']['NewsletterAdmin']['ADDEDTOBL'] = 'foi adicionado á lista negra';
$lang['pt_PT']['NewsletterAdmin']['REMOVEDFROMBL'] = 'foi removido da lista negra';
$lang['pt_PT']['NewsletterAdmin']['IMPORTFROM'] = 'Importar do ficheiro';
// MemberTableField.php
$lang['pt_PT']['MemberTableField']['FIRSTNAME'] = 'Primeiro Nome';
$lang['pt_PT']['MemberTableField']['SURNAME'] = 'Último Nome';
$lang['pt_PT']['MemberTableField']['EMAIL'] = 'Email';
$lang['pt_PT']['MemberTableField']['SEARCH'] = 'Pesquisa';
$lang['pt_PT']['MemberTableField']['ORDERBY'] = 'Ordenar por';
$lang['pt_PT']['MemberTableField']['ASC'] = 'Ascendente';
$lang['pt_PT']['MemberTableField']['DESC'] = 'Descendente';
$lang['pt_PT']['MemberTableField']['ANYGROUP'] = 'Qualquer Grupo';
$lang['pt_PT']['MemberTableField']['FILTERBYGROUP'] = 'Filtrar por Grupo';
$lang['pt_PT']['MemberTableField']['FILTER'] = 'Filtrar';
$lang['pt_PT']['MemberTableField']['ADDINGFIELD'] = 'A adicionar campo';
// MemberTableField.php
$lang['pt_PT']['MemberList']['ASC'] = 'Ascendente';
$lang['pt_PT']['MemberList']['DESC'] = 'Descendente';
$lang['pt_PT']['MemberList']['ORDERBY'] = 'Ordenar por';
$lang['pt_PT']['MemberList']['ANYGROUP'] = 'Qualquer Grupo';
// ImageEditor.php
$lang['pt_PT']['ImageEditor']['ERROR'] = 'Erro:';
// GenericDataAdmin.php
$lang['pt_PT']['GenericDataAdmin']['EXPORTCSV'] = 'Exportar em CSV';
$lang['pt_PT']['GenericDataAdmin']['CREATE'] = 'Criar';
$lang['pt_PT']['GenericDataAdmin']['GO'] = 'Ir';
$lang['pt_PT']['GenericDataAdmin']['SAVE'] = 'Gravar';
$lang['pt_PT']['GenericDataAdmin']['DELETE'] = 'Apagar';
$lang['pt_PT']['GenericDataAdmin']['FOUND'] = 'encontrados:';
$lang['pt_PT']['GenericDataAdmin']['CHOOSECRIT'] = 'Por favor escolha um critério para a pesquisa e clique em \'Ir\'.';
$lang['pt_PT']['GenericDataAdmin']['CHOOSECRIT'] = 'Nenhuma ocorrência de %s encontrada.';
$lang['pt_PT']['GenericDataAdmin']['SAVED'] = 'Gravado';
$lang['pt_PT']['GenericDataAdmin']['DELETEDSUCCESS'] = 'Apagado com sucesso';
// GenericDataAdmin.php
$lang['pt_PT']['CommentAdmin']['NAME'] = 'Nome';
$lang['pt_PT']['CommentAdmin']['COMMENT'] = 'Comentário';
$lang['pt_PT']['CommentAdmin']['COMMENTS'] = 'Comentários';
$lang['pt_PT']['CommentAdmin']['DELETED'] = '% comentário(s) apagado(s).';
$lang['pt_PT']['CommentAdmin']['MARKEDSPAM'] = '% comentário(s) marcados como spam.';
$lang['pt_PT']['CommentAdmin']['MARKEDNOTSPAM'] = '% comentário(s) marcados como não sendo spam.';
$lang['pt_PT']['CommentAdmin']['APPROVED'] = '% comentário(s) aprovado(s).';
// CMSMain.php
$lang['pt_PT']['CMSMain']['REMOVED'] = '\'%s\' Removido%s do site publicado';
$lang['pt_PT']['CMSMain']['DESCREMOVED'] = 'e %s descendentes';
$lang['pt_PT']['CMSMain']['REPORT'] = 'Relatório';
$lang['pt_PT']['CMSMain']['ACCESS'] = 'Acesso a %s no CMS';
// AssetTableField.php
$lang['pt_PT']['AssetTableField']['URL'] = 'URL';
$lang['pt_PT']['AssetTableField']['MAIN'] = 'Principal';
$lang['pt_PT']['AssetTableField']['IMAGE'] = 'Imagem';
$lang['pt_PT']['AssetTableField']['EDITIMAGE'] = 'Editar esta Imagem';
$lang['pt_PT']['AssetTableField']['GALLERYOPTIONS'] = 'Opções da Galeria';
$lang['pt_PT']['AssetTableField']['CAPTION'] = 'Texto Alternativo';
$lang['pt_PT']['AssetTableField']['POPUPWIDTH'] = 'Largura da Janela Popup';
$lang['pt_PT']['AssetTableField']['POPUPHEIGHT'] = 'Altura da Janela Popup';
$lang['pt_PT']['AssetTableField']['SWFFILEOPTIONS'] = 'Opções de Ficheiro Flash';
$lang['pt_PT']['AssetTableField']['ISFLASH'] = 'É um documento Flash';
$lang['pt_PT']['AssetTableField']['DIMLIMIT'] = 'Limitar as dimensões na Janela de Popup';
// AssetAdmin.php
$lang['pt_PT']['AssetAdmin']['NOTEMP'] = 'Não existe uma pasta temporária para envio de ficheiros. Por favor adicione um valor em upload_tmp_dir no php.ini.';
$lang['pt_PT']['AssetAdmin']['URL'] = 'URL';
$lang['pt_PT']['AssetAdmin']['NOWBROKEN'] = ' As seguintes páginas contêm agora links quebrados:';
$lang['pt_PT']['AssetAdmin']['NOWBROKEN2'] = 'Os respectivos proprietários receberam um email e brevemente as páginas serão corrigidas.';
$lang['pt_PT']['AssetAdmin']['FOLDERSDELETED'] = 'pastas apagadas.';
$lang['pt_PT']['AssetAdmin']['FOLDERDELETED'] = 'pasta apagada.';
$lang['pt_PT']['AssetAdmin']['THUMBSDELETED'] = 'Todas as miniaturas não usadas foram apagadas.';
// UserDefinedForm.php
$lang['pt_PT']['UserDefinedForm']['ONCOMPLETE'] = 'Ao Submeter';
$lang['pt_PT']['UserDefinedForm']['ONCOMPLETEMESSAGE'] = '<p>Obrigado, recebemos a sua submissão.</p>';
$lang['pt_PT']['UserDefinedForm']['ONCOMPLETELABEL'] = 'Mostrar após inserção';
$lang['pt_PT']['UserDefinedForm']['SUBMISSIONS'] = 'Submissões';
$lang['pt_PT']['UserDefinedForm']['FORM'] = 'Formulário';
$lang['pt_PT']['UserDefinedForm']['RECEIVED'] = 'Submissões recebidas';
$lang['pt_PT']['UserDefinedForm']['SUBMIT'] = 'Submeter';
$lang['pt_PT']['UserDefinedForm']['NORESULTS'] = 'Nenhum resultado encontrado.';
$lang['pt_PT']['UserDefinedForm']['TEXTONSUBMIT'] = 'Texto no botão de inserir formulário';
$lang['pt_PT']['UserDefinedForm_SubmittedFormEmail']['EMAILSUBJECT'] = 'Inserção de formulário';
// BatchProcess.php
$lang['pt_PT']['BatchProcess_Controller']['ERROR'] = 'Erro: devido a um erro é impossivel continuar com o processo.';
// Newsletter.php
$lang['pt_PT']['Newsletter']['NEWSLETTER'] = 'Email';
$lang['pt_PT']['Newsletter']['SUBJECT'] = 'Assunto';
$lang['pt_PT']['Newsletter']['CONTENT'] = 'Conteúdo';
$lang['pt_PT']['Newsletter']['SENTREPORT'] = 'Relatório de Estado de envio';
$lang['pt_PT']['Newsletter']['SENTAT'] = 'Enviado Em';
// NewsletterType.php
$lang['pt_PT']['NewsletterType']['MAILINGLIST'] = 'Lista de Email:';
$lang['pt_PT']['NewsletterType']['NEWSLETTERTYPE'] = 'Tipo de Lista de email';
$lang['pt_PT']['NewsletterType']['SENDFROM'] = 'Enviar newsletter de';
$lang['pt_PT']['NewsletterType']['DRAFTS'] = 'Rascunhos';
$lang['pt_PT']['NewsletterType']['DRAFT'] = 'Rascunho';
$lang['pt_PT']['NewsletterType']['SENT'] = 'Enviado';
$lang['pt_PT']['NewsletterType']['SEND'] = 'Enviar';
$lang['pt_PT']['NewsletterType']['UNSUBSCRIBED'] = 'Assinaturas Removidas';
$lang['pt_PT']['NewsletterType']['BOUNCED'] = 'Devolvidos';
$lang['pt_PT']['NewsletterType']['RECIPIENTS'] = 'Recipientes';
$lang['pt_PT']['NewsletterType']['IMPORT'] = 'Importar';
$lang['pt_PT']['NewsletterType']['IMPORTFROM'] = 'Importar do ficheiro';
$lang['pt_PT']['NewsletterType']['TEMPLATE'] = 'Modelos';
// Unsubscribe.php
$lang['pt_PT']['Unsubscribe']['SUCCESS'] = 'Obrigado. Foi removido dos grupos seleccionados';
$lang['pt_PT']['Unsubscribe']['NOMLSELECTED'] = 'Tem de seleccionar pelo menos uma lista de email para remover a subscrição';
$lang['pt_PT']['Unsubscribe']['SUBSCRIBEDTO'] = 'Tem as seguintes lista de email assinadas';
$lang['pt_PT']['Unsubscribe']['UNSUBSCRIBE'] = 'Remover a Assinatura';
$lang['pt_PT']['Unsubscribe']['NOTSUBSCRIBED'] = 'Desculpe mas o email %s não se encontra em nenhuma das nossas listas de email.';
$lang['pt_PT']['Unsubscribe']['EMAILADDR'] = 'Endereço de Email';
$lang['pt_PT']['Unsubscribe']['SHOWLISTS'] = 'Mostrar Listas';
$lang['pt_PT']['Unsubscribe']['REMOVESUCCESS'] = 'Obrigado. O email %s não irá receber mais mensagens da lista de email %s';
// Unsubscribe.php
$lang['pt_PT']['TemplateList']['NONE'] = 'Nenhum';
// NEW NEW NEW NEW
// WidgetEditor.ss
$lang['pt_PT']['WidgetEditor.ss']['DELETE'] = 'Apagar';
// WidgetAreaEditor.ss
$lang['pt_PT']['WidgetAreaEditor.ss']['AVAILABLE'] = 'Widgets Disponíveis';
$lang['pt_PT']['WidgetAreaEditor.ss']['NOAVAIL'] = 'Não existem widgets disponóveis de momento.';
$lang['pt_PT']['WidgetAreaEditor.ss']['INUSE'] = 'Widgets Actualmente em uso.';
$lang['pt_PT']['WidgetAreaEditor.ss']['TOADD'] = 'Para adicionar Widgets arraste-as da esquerda para aqui.';
// PageCommentInterface_singlecomment.ss
$lang['pt_PT']['PageCommentInterface_singlecomment.ss']['APPROVE'] = 'Aprovar este comentário';
// Newsletter_SentStatusReport.ss
$lang['pt_PT']['Newsletter_SentStatusReport.ss']['FAILEDBL'] = 'Não houve envio para os seguintes recipientes porque estão na lista negra';
// Newsletter_RecipientReportField.ss
$lang['pt_PT']['Newsletter_RecipientReportField.ss']['MLRELOAD1'] = 'Para ver os novos membros na lista de recipientes, tem que';
$lang['pt_PT']['Newsletter_RecipientReportField.ss']['MLRELOAD2'] = 'refrescar a lista';
// LeftAndMain.ss
$lang['pt_PT']['LeftAndMain.ss']['EDITINCMS'] = 'Editar esta página no editor de conteúdos';
$lang['pt_PT']['LeftAndMain.ss']['VIEWINDRAFT'] = 'Vêr esta página no site de rascunho';
$lang['pt_PT']['LeftAndMain.ss']['VIEWINPUBLISHED'] = 'Vêr esta página no site publicado';
// ImageEditor.ss
$lang['pt_PT']['ImageEditor.ss']['EXIT'] = 'sair';
$lang['pt_PT']['ImageEditor.ss']['ACTIONS'] = 'acções';
$lang['pt_PT']['ImageEditor.ss']['EDITFUNCTIONS'] = 'funções de edição';
$lang['pt_PT']['ImageEditor.ss']['APPLY'] = 'aplicar';
$lang['pt_PT']['ImageEditor.ss']['CURRENTACTION'] = 'acções actual';
// CMSMain_dialog.ss
$lang['pt_PT']['CMSMain_dialog.ss']['BUTTONNOTFOUND'] = 'Nome do botão não encontrado';
$lang['pt_PT']['CMSMain_dialog.ss']['NOLINKED'] = 'windo.linkedObject não encontrado para o click do botão voltar à janela principal';
// StatisticsAdmin_left.ss
$lang['pt_PT']['StatisticsAdmin_left.ss']['VIEWS'] = 'Visualizações';
$lang['pt_PT']['StatisticsAdmin_left.ss']['OS'] = 'Sistemas Operativos';
$lang['pt_PT']['StatisticsAdmin_left.ss']['BROWSERS'] = 'Navegadores';
$lang['pt_PT']['StatisticsAdmin_left.ss']['TRENDS'] = 'Tendências';
$lang['pt_PT']['StatisticsAdmin_left.ss']['STATISTICS'] = 'Estatísticas';
// NewsletterAdmin_BouncedList.ss
$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['INSTRUCTIONS'] = 'Instrucções';
$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['INSTRUCTIONS1'] = 'Retire o tick da caixa do email na lista negra para enviar email para o mesmo.';
$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['INSTRUCTIONS2'] = 'Para removêr o email da lista de email click no icon';
$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['BLACKLISTED'] = 'Na Lista Negra';
$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['REASON'] = 'Razão:';
$lang['pt_PT']['NewsletterAdmin_BouncedList.ss']['DATE'] = 'Data:';
// MemberList_PageControls.ss
$lang['pt_PT']['MemberList_PageControls.ss']['VIEWLAST'] = 'Vêr os últimos';
$lang['pt_PT']['MemberList_PageControls.ss']['LASTMEMBERS'] = 'membros';
$lang['pt_PT']['MemberList_PageControls.ss']['VIEWFIRST'] = 'Vêr os primeiros';
$lang['pt_PT']['MemberList_PageControls.ss']['FIRSTMEMBERS'] = 'membros';
$lang['pt_PT']['MemberList_PageControls.ss']['VIEWPREVIOUS'] = 'Vêr os membros';
$lang['pt_PT']['MemberList_PageControls.ss']['PREVIOUSMEMBERS'] = 'anteriores';
$lang['pt_PT']['MemberList_PageControls.ss']['DISPLAYING'] = 'A mostrar';
$lang['pt_PT']['MemberList_PageControls.ss']['TO'] = 'até';
$lang['pt_PT']['MemberList_PageControls.ss']['OF'] = 'de';
$lang['pt_PT']['MemberList_PageControls.ss']['VIEWPREVIOUS'] = 'Vêr os próximos';
$lang['pt_PT']['MemberList_PageControls.ss']['PREVIOUSMEMBERS'] = 'membros';
// GenericDataAdmin_right.ss
$lang['pt_PT']['GenericDataAdmin_right.ss']['WELCOME1'] = 'Bem-vindo a';
$lang['pt_PT']['genericDataAdmin_right.ss']['WELCOME2'] = 'Por favor, escolha uma opção no painel da esquerda.';
// CommentTableField.ss
$lang['pt_PT']['CommentTableField.ss']['EDIT'] = 'editar';
$lang['pt_PT']['CommentTableField.ss']['APPROVE'] = 'aprovar';
$lang['pt_PT']['CommentTableField.ss']['SPAM'] = 'spam';
$lang['pt_PT']['CommentTableField.ss']['HAM'] = 'não spam';
$lang['pt_PT']['CommentTableField.ss']['DELETE'] = 'apagar';
// CommentAdmin_right.ss
$lang['pt_PT']['CommentAdmin_right.ss']['WELCOME1'] = 'Bem-vindo a';
$lang['pt_PT']['CommentAdmin_right.ss']['WELCOME2'] = 'gestão de comentários. Por favor escolha uma pasta na esquerda.';
// New2
$lang['pt_PT']['MemberTableField.ss']['DISPLAYING'] = 'A mostrar';
$lang['pt_PT']['MemberTableField.ss']['TO'] = 'até';
$lang['pt_PT']['MemberTableField.ss']['OF'] = 'de';
$lang['pt_PT']['MemberTableField.ss']['EDITASSET'] = 'Editar ficheiro';
$lang['pt_PT']['MemberTableField']['FIRSTNAME'] = 'Primeiro Nome';
$lang['pt_PT']['MemberTableField']['SURNAME'] = 'Sobrenome';
$lang['pt_PT']['MemberTableField']['EMAIL'] = 'Email';
$lang['pt_PT']['GenericDataAdmin']['CSVEXPORT'] = 'Exportar para CSV';
$lang['pt_PT']['SecurityAdmin']['VIEWUSER'] = 'Ver Utilizador';
$lang['pt_PT']['CMSMain']['ACCESSTO'] = array('Accesso a %s no CMS');
$lang['pt_PT']['CMSMain']['ASSETADMINNAME'] = 'Ficheiros e Imagens';
$lang['pt_PT']['CMSMain']['BULKLOADERADMINNAME'] = 'Acções em Volume';
$lang['pt_PT']['CMSMain']['CMSMAINNAME'] = 'CMS Principal';
$lang['pt_PT']['CMSMain']['COMMENTADMINNAME'] = 'Comentários';
$lang['pt_PT']['CMSMain']['GENERICDATAADMINNAME'] = 'Dados Genéricos';
$lang['pt_PT']['CMSMain']['LEFTANDMAINNAME'] = 'Esquerda e Principal';
$lang['pt_PT']['CMSMain']['NEWSLETTERADMINNAME'] = 'Listas de Email';
$lang['pt_PT']['CMSMain']['REPORTADMINNAME'] = 'Relatórios';
$lang['pt_PT']['CMSMain']['SECURITYADMINNAME'] = 'Segurança';
$lang['pt_PT']['CMSMain']['STATISTICSADMINNAME'] = 'Estatísticas';
$lang['pt_PT']['CommentAdmin']['APPROVEDCOMMENTS'] = 'Comentários Aprovados';
$lang['pt_PT']['CommentAdmin']['WAITINGMODERATION'] = 'Comentários por Aprovar';
$lang['pt_PT']['CommentAdmin']['SPAM'] = 'Spam';
$lang['pt_PT']['CommentAdmin']['AUTHOR'] = 'Autor';
$lang['pt_PT']['CommentAdmin']['COMMENT'] = 'Comentário';
$lang['pt_PT']['CommentAdmin']['COMMENTS'] = 'Comentários';
$lang['pt_PT']['CommentAdmin']['PAGE'] = 'Página';
$lang['pt_PT']['CommentAdmin']['CREATED'] = 'Criado em';
$lang['pt_PT']['CommentAdmin']['ACCEPT'] = 'Aceitar';
$lang['pt_PT']['CommentAdmin']['MARKSPAM'] = 'Marcar como spam';
$lang['pt_PT']['CommentAdmin']['MARKNOTSPAM'] = 'Marcar como não sendo spam';
$lang['pt_PT']['CommentAdmin']['DELETE'] = 'Apagar';
$lang['pt_PT']['CommentAdmin']['DELETEALL'] = 'Apagar Todos';
$lang['pt_PT']['CommentAdmin']['NAME'] = 'Nome';
$lang['pt_PT']['CommentAdmin']['EDIT'] = 'Editar';
$lang['pt_PT']['CommentTableField']['SEARCH'] = 'Procurar';
$lang['pt_PT']['CommentTableField']['FILTER'] = 'Filtro';
$lang['pt_PT']['CommentTableField.ss']['DISPLAYING'] = 'A mostrar';
$lang['pt_PT']['CommentTableField.ss']['TO'] = 'até';
$lang['pt_PT']['CommentTableField.ss']['OF'] = 'de';
$lang['pt_PT']['CommentTableField.ss']['NOITEMSFOUND'] = 'Nenhum item encontrado';
$lang['pt_PT']['CommentTableField.ss']['EDIT'] = 'Editar';
$lang['pt_PT']['CommentTableField.ss']['APPROVE'] = 'Aprovar este comentário';
$lang['pt_PT']['CommentTableField.ss']['MARKASSPAM'] = 'Marcar como spam';
$lang['pt_PT']['CommentTableField.ss']['MARKASNOTSPAM'] = 'Marcar como não sendo spam';
$lang['pt_PT']['CommentTableField.ss']['DELETEROW'] = 'Apagar esta linha';
$lang['pt_PT']['CommentAdmin_left.ss']['COMMENTS'] = 'Comentários';
$lang['pt_PT']['CommentAdmin_left.ss']['APPROVED'] = 'Aprovados';
$lang['pt_PT']['CommentAdmin_left.ss']['WAITINGMODERATION'] = 'Por Aprovar';
$lang['pt_PT']['CommentAdmin_left.ss']['SPAM'] = 'Spam';
$lang['pt_PT']['StatisticsAdmin']['SELECTREPORT'] = 'Seleccione um relatório da esquerda para ver as estatísticas do site mais detalhadamente';
$lang['pt_PT']['StatisticsAdmin_left.ss']['STATISTICS'] = 'Estatísticas';
$lang['pt_PT']['StatisticsAdmin_left.ss']['VIEWS'] = 'Visualizações';
$lang['pt_PT']['StatisticsAdmin_left.ss']['TRENDS'] = 'Tendências';
$lang['pt_PT']['StatisticsAdmin_left.ss']['OS'] = 'Sistemas Operativos';
$lang['pt_PT']['StatisticsAdmin_left.ss']['BROWSERS'] = 'Browsers';
?>

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('ru_RU', $lang) && is_array($lang['ru_RU'])) {
$lang['ru_RU'] = array_merge($lang['en_US'], $lang['ru_RU']);
} else {
$lang['ru_RU'] = $lang['en_US'];
}
$lang['ru_RU'] = $lang['en_US'];
$lang['ru_RU']['AssetAdmin']['CHOOSEFILE'] = 'Выберите файл';
$lang['ru_RU']['AssetAdmin']['CONTENTMODBY'] = 'Редакторы содержимого:';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('sk_SK', $lang) && is_array($lang['sk_SK'])) {
$lang['sk_SK'] = array_merge($lang['en_US'], $lang['sk_SK']);
} else {
$lang['sk_SK'] = $lang['en_US'];
}
$lang['sk_SK'] = $lang['en_US'];
$lang['sk_SK']['AssetAdmin']['CHOOSEFILE'] = 'Vybrať súbor';
$lang['sk_SK']['AssetAdmin']['CONTENTMODBY'] = 'Obsah upraviteľný pre';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('sv_SE', $lang) && is_array($lang['sv_SE'])) {
$lang['sv_SE'] = array_merge($lang['en_US'], $lang['sv_SE']);
} else {
$lang['sv_SE'] = $lang['en_US'];
}
$lang['sv_SE'] = $lang['en_US'];
$lang['sv_SE']['AssetAdmin']['CHOOSEFILE'] = 'Välj fil';
$lang['sv_SE']['AssetAdmin']['CONTENTMODBY'] = 'Följande kan redigera innehållet';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('tr_TR', $lang) && is_array($lang['tr_TR'])) {
$lang['tr_TR'] = array_merge($lang['en_US'], $lang['tr_TR']);
} else {
$lang['tr_TR'] = $lang['en_US'];
}
$lang['tr_TR'] = $lang['en_US'];
$lang['tr_TR']['AssetAdmin']['CHOOSEFILE'] = 'Yükleyeceğiniz Dosyayı seçiniz';
$lang['tr_TR']['AssetAdmin']['CONTENTMODBY'] = 'İçeriği değiştirebilme yetkisi olan(lar)';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('zh_CN', $lang) && is_array($lang['zh_CN'])) {
$lang['zh_CN'] = array_merge($lang['en_US'], $lang['zh_CN']);
} else {
$lang['zh_CN'] = $lang['en_US'];
}
$lang['zh_CN'] = $lang['en_US'];
$lang['zh_CN']['AssetAdmin']['CHOOSEFILE'] = '选择文件';
$lang['zh_CN']['AssetAdmin']['CONTENTMODBY'] = '内容可被修改';

View File

@ -4,11 +4,7 @@ i18n::include_locale_file('cms', 'en_US');
global $lang;
if(array_key_exists('zh_TW', $lang) && is_array($lang['zh_TW'])) {
$lang['zh_TW'] = array_merge($lang['en_US'], $lang['zh_TW']);
} else {
$lang['zh_TW'] = $lang['en_US'];
}
$lang['zh_TW'] = $lang['en_US'];
$lang['zh_TW']['AssetAdmin']['CHOOSEFILE'] = '選擇檔案';
$lang['zh_TW']['AssetAdmin']['CONTENTMODBY'] = '可以更改內容的人:';

View File

@ -20,17 +20,17 @@
<% end_control %>
<% if Can(show) %>
<td width="18">
<a class="popuplink showlink" href="$ShowLink" target="_blank" title="<% _t('SHOW', 'Show asset') %>"><img src="cms/images/show.png" alt="<% _t('SHOW', 'Show asset') %>" /></a>
<a class="popuplink showlink" href="$ShowLink" target="_blank" title="Show asset"><img src="cms/images/show.png" alt="show" /></a>
</td>
<% end_if %>
<% if Can(edit) %>
<td width="18">
<a class="popuplink editlink" href="$EditLink" target="_blank" title="<% _t('EDIT', 'Edit asset') %>"><img src="cms/images/edit.gif" alt="<% _t('EDIT', 'Edit asset') %>" /></a>
<a class="popuplink editlink" href="$EditLink" target="_blank" title="Edit asset"><img src="cms/images/edit.gif" alt="edit" /></a>
</td>
<% end_if %>
<% if Can(delete) %>
<td width="18">
<a class="deletelink" href="admin/assets/removefile/$ID" title="<% _t('DELFILE', 'Delete this file') %>"><img src="cms/images/delete.gif" alt="<% _t('DELFILE', 'Delete this file') %>" title="<% _t('DELFILE','Delete this file') %>" /></a>
<a class="deletelink" href="admin/assets/removefile/$ID" title="Delete this file"><img src="cms/images/delete.gif" alt="delete" title="<% _t('DELFILE','Delete this file') %>" /></a>
</td>
<% end_if %>
</tr>

View File

@ -34,6 +34,12 @@
<div>
<input class="action" type="submit" value="<% _t('GO','Go') %>" />
</div>
<div class="field dropdown nolabel" style="margin-top: 4px;">
<span class="middleColumn">
<input type="checkbox" id="sortitems" /> <label for="sortitems"><% _t('ENABLEDRAGGING','Allow drag &amp; drop reordering', PR_HIGH) %></label>
</span>
</div>
</form>
<% end_control %>
<form class="actionparams" style="display: none" id="search_options" action="admin/filterSiteTree">
@ -81,9 +87,7 @@
</div>
</form>
<% end_control %>
<div id="SortItems">
<input type="checkbox" id="sortitems" /> <label for="sortitems"><% _t('ENABLEDRAGGING','Allow drag &amp; drop reordering', PR_HIGH) %></label>
</div>
<div id="sitetree_ul">
$SiteTreeAsUL
</div>
@ -163,4 +167,4 @@
<div class="unitBody">
</div>
</div>
</div>
</div>

View File

@ -1,15 +1,15 @@
<ul id="sitetree" class="tree unformatted">
<li id="$ID" class="Root"><a><strong><% _t('COMMENTS', 'Comments') %></strong></a>
<li id="$ID" class="Root"><a><strong>Comments</strong></a>
<ul>
<li id="record-approved" <% if Section=approved %>class="current"<% end_if %>>
<a href="$baseURL/admin/comments/showtable/approved" title="<% _t('APPROVED', 'Approved') %>"><% _t('APPROVED', 'Approved') %></a>
<a href="$baseURL/admin/comments/showtable/approved" title="Approved">Approved</a>
</li>
<li id="record-unmoderated" <% if Section=unmoderated %>class="current"<% end_if %>>
<a href="$baseURL/admin/comments/showtable/unmoderated" title="<% _t('AWAITMODERATION', 'Awaiting Moderation') %>"><% _t('AWAITMODERATION', 'Awaiting Moderation') %></a>
<a href="$baseURL/admin/comments/showtable/unmoderated" title="Awaiting Moderation">Awaiting Moderation</a>
</li>
<li id="record-spam">
<a href="$baseURL/admin/comments/showtable/spam" title="<% _t('SPAM', 'Spam') %>" <% if Section=spam %>class="current"<% end_if %>><% _t('SPAM', 'Spam') %></a>
<a href="$baseURL/admin/comments/showtable/spam" title="Spam" <% if Section=spam %>class="current"<% end_if %>>Spam</a>
</li>
</ul>
</li>
</ul>
</ul>

View File

@ -1,7 +1,7 @@
<h2><% _t('COMMENTS', 'Comments') %></h2>
<h2>Comments</h2>
<div id="treepanes">
<div id="sitetree_holder">
<% include CommentAdmin_SiteTree %>
</div>
</div>
</div>

View File

@ -5,7 +5,7 @@
$EditForm
<% else %>
<form id="Form_EditForm" action="admin/comments?executeForm=EditForm" method="post" enctype="multipart/form-data">
<p><% _t('WELCOME1', 'Welcome to the') %> $ApplicationName <% _t('WELCOME2', 'comment management. Please select a folder in the tree on the left.') %></p>
<p>Welcome to the $ApplicationName comment management. Please select a folder in the tree on the left.</p>
</form>
<% end_if %>

View File

@ -44,26 +44,26 @@
<td>$Value</td>
<% end_control %>
<% if Can(edit) %>
<td width="18"><a class="popuplink editlink" href="$EditLink" target="_blank"><img src="cms/images/edit.gif" alt="<% _t('EDIT', 'edit') %>" /></a></td>
<td width="18"><a class="popuplink editlink" href="$EditLink" target="_blank"><img src="cms/images/edit.gif" alt="edit" /></a></td>
<% end_if %>
<% if HasApproveButton %>
<td width="18"><a class="approvelink" href="$ApproveLink" title="<% _t('APPROVECOMMENT', 'Approve this comment') %>"><img src="cms/images/approvecomment.png" alt="<% _t('APPROVE', 'approve') %>" /></a></td>
<td width="18"><a class="approvelink" href="$ApproveLink" title="Approve this comment"><img src="cms/images/approvecomment.png" alt="approve" /></a></td>
<% end_if %>
<% if HasSpamButton %>
<td width="18"><a class="spamlink" href="$SpamLink" title="<% _t('MARKASSPAM', 'Mark this comment as spam') %>"><img src="cms/images/declinecomment.png" alt="<% _t('SPAM', 'spam') %>" /></a></td>
<td width="18"><a class="spamlink" href="$SpamLink" title="Mark this comment as spam"><img src="cms/images/declinecomment.png" alt="spam" /></a></td>
<% end_if %>
<% if HasHamButton %>
<td width="18"><a class="hamlink" href="$HamLink" title="<% _t('MARKNOSPAM', 'Mark this comment as not spam') %>"><img src="cms/images/approvecomment.png" alt="<% _t('HAM', 'ham') %>" /></a></td>
<td width="18"><a class="hamlink" href="$HamLink" title="Mark this comment as not spam"><img src="cms/images/approvecomment.png" alt="ham" /></a></td>
<% end_if %>
<% if Can(delete) %>
<td width="18"><a class="deletelink" href="$DeleteLink" title="<% _t('DELETEROW', 'Delete this row') %>"><img src="cms/images/delete.gif" alt="<% _t('DELETE', 'delete') %>" /></a></td>
<td width="18"><a class="deletelink" href="$DeleteLink" title="Delete this row"><img src="cms/images/delete.gif" alt="delete" /></a></td>
<% end_if %>
</tr>
<% end_control %>
<% else %>
<tr class="notfound">
<% if Markable %><th width="18">&nbsp;</th><% end_if %>
<td colspan="$Headings.Count"><i><% _t('NOITEMSFOUND', 'No items found') %></i></td>
<td colspan="$Headings.Count"><i>No items found</i></td>
<% if Can(edit) %><th width="18">&nbsp;</th><% end_if %>
<% if HasApproveButton %><th width="18">&nbsp;</th><% end_if %>
<% if HasSpamButton %><th width="18">&nbsp;</th><% end_if %>
@ -73,4 +73,4 @@
<% end_if %>
</tbody>
</table>
</div>
</div>

View File

@ -17,7 +17,7 @@
<% else_if Type = dropdown %>
<select name="$Command" class="mceSelectList" id="mce_editor_$IDSegment">$Options</select>
<% else_if Type = separator %>
<img width="1" height="15" class="mceSeparatorLine" src="jsparty/tiny_mce2/themes/advanced/images/spacer.gif" alt="|" />
<img width="1" height="15" class="mceSeparatorLine" src="{$MceRoot}themes/advanced/images/spacer.gif" alt="|" />
<% else_if Type = break %>
<br />
<% end_if %>

View File

@ -22,7 +22,7 @@
&nbsp;
</div>
<h2><% _t('SEARCHRESULTS','Search Results') %></h2>
<div id="ResultTable_holder" class="leftbottom">
<div id="ResultTable_holder" class="leftbottom" style="overflow:auto">
$Results
</div>
</div>

View File

@ -6,7 +6,7 @@
<form id="Form_EditForm" action="admin?executeForm=EditForm" method="post" enctype="multipart/form-data">
<h1>$ApplicationName</h1>
<p><% _t('WELCOME1', 'Welcome to') %> $ApplicationName! <% _t('WELCOME2', 'Please choose click on one of the entries on the left pane.') %></p>
<p>Welcome to $ApplicationName! Please choose click on one of the entries on the left pane.</p>
</form>
<% end_if %>

View File

@ -1,15 +1,15 @@
<div class="PageControls">
<input name="MemberListStart" id="MemberListStart" type="hidden" value="$MemberListStart" />
<% if LastLink %><a class="Last" href="$LastLink" title="<% _t('VIEWLAST', 'View last') %> $PageSize <% _t('LASTMEMBERS', 'members') %>"><img src="cms/images/pagination/record-last.png" alt="View last $PageSize members" /></a>
<% else %><span class="Last"><img src="cms/images/pagination/record-last-g.png" alt="<% _t('VIEWLAST', 'View last') %> $PageSize <% _t('LASTMEMBERS', 'members') %>" /></span><% end_if %>
<% if FirstLink %><a class="First" href="$FirstLink" title="<% _t('VIEWFIRST', 'View first') %> $PageSize <% _t('FIRSTMEMBERS', 'members') %>"><img src="cms/images/pagination/record-first.png" alt="View first $PageSize members" /></a>
<% else %><span class="First"><img src="cms/images/pagination/record-first-g.png" alt="<% _t('VIEWFIRST', 'View first') %> $PageSize <% _t('FIRSTMEMBERS', 'members') %>" /></span><% end_if %>
<% if PrevLink %><a class="Prev" href="$PrevLink" title="<% _t('VIEWPREVIOUS', 'View previous') %> $PageSize <% _t('PREVIOUSMEMBERS', 'members') %>"><img src="cms/images/pagination/record-prev.png" alt="<% _t('VIEWPREVIOUS', 'View previous') %> $PageSize <% _t('PREVIOUSMEMBERS', 'members') %>" /></a>
<% else %><img class="Prev" src="cms/images/pagination/record-prev-g.png" alt="<% _t('VIEWPREVIOUS', 'View previous') %> $PageSize <% _t('PREVIOUSMEMBERS', 'members') %>" /><% end_if %>
<% if LastLink %><a class="Last" href="$LastLink" title="View last $PageSize members"><img src="cms/images/pagination/record-last.png" alt="View last $PageSize members" /></a>
<% else %><span class="Last"><img src="cms/images/pagination/record-last-g.png" alt="View last $PageSize members" /></span><% end_if %>
<% if FirstLink %><a class="First" href="$FirstLink" title="View first $PageSize members"><img src="cms/images/pagination/record-first.png" alt="View first $PageSize members" /></a>
<% else %><span class="First"><img src="cms/images/pagination/record-first-g.png" alt="View first $PageSize members" /></span><% end_if %>
<% if PrevLink %><a class="Prev" href="$PrevLink" title="View previous $PageSize members"><img src="cms/images/pagination/record-prev.png" alt="View previous $PageSize members" /></a>
<% else %><img class="Prev" src="cms/images/pagination/record-prev-g.png" alt="View previous $PageSize members" /><% end_if %>
<span class="Count">
<% _t('DISPLAYING', 'Displaying') %> $FirstMember <% _t('TO', 'to') %> $LastMember <% _t('OF', 'of') %> $TotalMembers
Displaying $FirstMember to $LastMember of $TotalMembers
</span>
<% if NextLink %><a class="Next" href="$NextLink" title="<% _t('VIEWNEXT', 'View next') %> $PageSize <% _t('NEXTMEMBERS', 'members') %>"><img src="cms/images/pagination/record-next.png" alt="<% _t('VIEWNEXT', 'View next') %> $PageSize <% _t('NEXTMEMBERS', 'members') %>" /></a>
<% else %><img class="Next" src="cms/images/pagination/record-next-g.png" alt="<% _t('VIEWNEXT', 'View next') %> $PageSize <% _t('NEXTMEMBERS', 'members') %>" /><% end_if %>
<% if NextLink %><a class="Next" href="$NextLink" title="View next $PageSize members"><img src="cms/images/pagination/record-next.png" alt="View next $PageSize members" /></a>
<% else %><img class="Next" src="cms/images/pagination/record-next-g.png" alt="View next $PageSize members" /><% end_if %>
</div>

View File

@ -1,17 +1,17 @@
<% if Entries %>
<p><b><% _t('INSTRUCTIONS', 'Instructions:') %></b></p>
<p><b>Instructions:</b></p>
<ul>
<li><% _t('INSTRUCTIONS1', 'Uncheck the box to enable sending to a blacklisted email address.') %></li>
<li><% _t('INSTRUCTIONS2', 'To remove a recipients\'s email address from your mailing list, click the icon') %> <img src="cms/images/delete.gif" alt="delete" /></li>
<li>Uncheck the box to enable sending to a blacklisted email address.</li>
<li>To remove a recipients's email address from your mailing list, click the <img src="cms/images/delete.gif" alt="delete" /> icon.</li>
</ul>
<table id="BouncedListTable" class="CMSList BouncedList" summary="<% _t('HAVEBOUNCED','Emails that have bounced') %>">
<thead>
<tr>
<th width="18"><% _t('BLACKLISTED', 'Blacklisted') %></th>
<th width="18">Blacklisted</th>
<th><% _t('UNAME','User name') %></th>
<th><% _t('EMADD','Email address') %></th>
<th><% _t('RESON', 'Reason:') %></th>
<th><% _t('DATE', 'Date') %></th>
<th>Reason:</th>
<th>Date</th>
<th width="18">&nbsp;</th>
</tr>
</thead>
@ -36,4 +36,4 @@
</table>
<% else %>
<p><% _t('NOBOUNCED','No emails sent have bounced.') %></p>
<% end_if %>
<% end_if %>

View File

@ -1,4 +1,4 @@
<h2><% _t('STATISTICS', 'Statistics') %></h2>
<h2>Statistics</h2>
<div id="treepanes">
<div id="sitetree_holder">
@ -6,10 +6,10 @@
<li class="Root" id="statsroot"><a><% _t('REPTYPES','Report Types') %></a>
<li id="stoverview"><a href="$baseURL/admin/statistics/overview"><% _t('OVERV','Overview') %></a></li>
<li id="stusers"><a href="$baseURL/admin/statistics/users"><% _t('USERS','Users') %></a></li>
<li id="stviews"><a href="$baseURL/admin/statistics/views"><% _t('VIEWS', 'Views') %></a></li>
<li id="sttrends"><a href="$baseURL/admin/statistics/trends"><% _t('TRENDS', Trends) %></a></li>
<li id="stos"><a href="$baseURL/admin/statistics/os"><% _t('OS', 'Operating Systems') %></a></li>
<li id="stbrowsers"><a href="$baseURL/admin/statistics/browsers"><% _t('BROWSERS', 'Browsers') %></a></li>
<li id="stviews"><a href="$baseURL/admin/statistics/views">Views</a></li>
<li id="sttrends"><a href="$baseURL/admin/statistics/trends">Trends</a></li>
<li id="stos"><a href="$baseURL/admin/statistics/os">Operating Systems</a></li>
<li id="stbrowsers"><a href="$baseURL/admin/statistics/browsers">Browsers</a></li>
</li>
</ul>
</div>