Merge branch '1.2' into 1.3

This commit is contained in:
Daniel Hensby 2017-01-25 13:31:44 +00:00
commit ef40ca30aa
No known key found for this signature in database
GPG Key ID: B00D1E9767F0B06E
9 changed files with 162 additions and 127 deletions

View File

@ -26,17 +26,20 @@ class WidgetContentControllerExtension extends Extension
* @return RequestHandler
*/
public function handleWidget()
{
$SQL_id = $this->owner->getRequest()->param('ID');
if (!$SQL_id) {
return false;
{$SQL_id = $this->owner->getRequest()->param('ID');
if(!$SQL_id) {return false;
}
/** @var SiteTree $widgetOwner */
$widgetOwner = $this->owner->data();
while($widgetOwner->InheritSideBar && $widgetOwner->Parent()->exists()){
$widgetOwner = $widgetOwner->Parent();
}
// find WidgetArea relations
$widgetAreaRelations = array();
$hasOnes = $this->owner->data()->hasOne();
$hasOnes = $widgetOwner->hasOne();
if (!$hasOnes) {
if(!$hasOnes) {
return false;
}
@ -54,7 +57,7 @@ class WidgetContentControllerExtension extends Extension
break;
}
$widget = $this->owner->data()->$widgetAreaRelation()->Widgets()
$widget = $widgetOwner->$widgetAreaRelation()->Widgets()
->filter('ID', $SQL_id)
->First();
}

View File

@ -54,19 +54,38 @@ class WidgetController extends Controller
$id = ($this->widget) ? $this->widget->ID : null;
$segment = Controller::join_links('widget', $id, $action);
if ($page = Director::get_current_page()) {
return $page->Link($segment);
$page = Director::get_current_page();
if($page && !($page instanceof WidgetController)) {return $page->Link($segment);
}
return Controller::curr()->Link($segment);
if ($controller = $this->getParentController()) {return $controller->Link($segment);
}
return $segment;
}
/**
* Cycles up the controller stack until it finds a non-widget controller
* This is needed becauseController::currreturns the widget controller,
* which means anyLinkfunction turns into endless loop.
*
* @return Controller
*/
public function getParentController()
{
foreach(Controller::$controller_stack as $controller) {
if (!($controller instanceof WidgetController)) {
return $controller;
}
}
return false;
}
/**
* @return Widget
*/
public function getWidget()
{
return $this->widget;
{return $this->widget;
}
/**
@ -76,8 +95,7 @@ class WidgetController extends Controller
* @return string HTML
*/
public function Content()
{
return $this->renderWith(array_reverse(ClassInfo::ancestry($this->widget->class)));
{return $this->renderWith(array_reverse(ClassInfo::ancestry($this->widget->class)));
}
/**
@ -87,8 +105,7 @@ class WidgetController extends Controller
* @return string HTML
*/
public function WidgetHolder()
{
return $this->renderWith("WidgetHolder");
{return $this->renderWith("WidgetHolder");
}
/**
@ -99,19 +116,17 @@ class WidgetController extends Controller
*
* @return string HTML
*/
public function editablesegment()
{
public function editablesegment() {
// use left and main to set the html config
$leftandmain = LeftAndMain::create();
$leftandmain->init();
$className = $this->urlParams['ID'];
if (class_exists('Translatable') && Member::currentUserID()) {
// set current locale based on logged in user's locale
$locale = Member::currentUser()->Locale;
i18n::set_locale($locale);
}
if (class_exists($className) && is_subclass_of($className, 'Widget')) {
if(class_exists($className) && is_subclass_of($className, 'Widget')) {
$obj = new $className();
return $obj->EditableSegment();
} else {

View File

@ -10,8 +10,8 @@
}
],
"require": {
"silverstripe/framework": ">=3.2",
"silverstripe/cms": ">=3.2"
"silverstripe/framework": "^3.2",
"silverstripe/cms": "^3.2"
},
"require-dev": {
"phpunit/PHPUnit": "~3.7@stable"

View File

@ -1,7 +1,7 @@
ar:
Widget:
PLURALNAME: تطبيقات مصغرة
SINGULARNAME: تطبيق مصغر
PLURALNAME: 'تطبيقات مصغرة'
SINGULARNAME: 'تطبيق مصغر'
WidgetArea:
PLURALNAME: 'مساحات التطبيقات المصغرة'
SINGULARNAME: 'مساحة التطبيقات المصغرة'
@ -14,4 +14,4 @@ ar:
WidgetDescription_ss:
CLICKTOADDWIDGET: 'اضغط لإضافة هذا التطبيق المصغر'
WidgetEditor_ss:
DELETE: مسح
DELETE: 'مسح'

View File

@ -3,8 +3,8 @@ de:
PLURALNAME: Widgets
SINGULARNAME: Widget
WidgetArea:
PLURALNAME: 'Widgetbereiche'
SINGULARNAME: 'Widgetbereich'
PLURALNAME: Widgetbereiche
SINGULARNAME: Widgetbereich
WidgetAreaEditor_ss:
AVAILABLE: 'Vorhandene Widgets'
AVAILWIDGETS: 'Klicke den Widget Titel, um es zu benutzen.'

View File

@ -1,6 +1,6 @@
fa_IR:
Widget:
PLURALNAME: ویجت ها
PLURALNAME: 'ویجت ها'
SINGULARNAME: ویجت
WidgetArea:
PLURALNAME: 'محیط ویجت ها'

17
lang/sk.yml Normal file
View File

@ -0,0 +1,17 @@
sk:
Widget:
PLURALNAME: Widgety
SINGULARNAME: Widget
WidgetArea:
PLURALNAME: 'Oblasti widgetu'
SINGULARNAME: 'Oblasť widgetu'
WidgetAreaEditor_ss:
AVAILABLE: 'Dostupné widgety'
AVAILWIDGETS: 'Kliknite na názov widgetu pre jeho použitie na tejto stránke.'
INUSE: 'Momentálne používané widgety.'
NOAVAIL: 'Momentálne nie sú dostupné žiadne widgety.'
TOSORT: 'Pre zotriedenie momentálne používaných widgetov na tejto stránke, potiahnite ich hore alebo dole.'
WidgetDescription_ss:
CLICKTOADDWIDGET: 'Kliknite pre pridanie tohto widgetu'
WidgetEditor_ss:
DELETE: Vymazať

View File

@ -3,8 +3,8 @@ sv:
PLURALNAME: Widgets
SINGULARNAME: Widget
WidgetArea:
PLURALNAME: 'Widgetområden'
SINGULARNAME: 'Widgetområde'
PLURALNAME: Widgetområden
SINGULARNAME: Widgetområde
WidgetAreaEditor_ss:
AVAILABLE: 'Tillgängliga widgets'
AVAILWIDGETS: 'Klicka på en widget nedan för att använda den på sidan.'

View File

@ -1,7 +1,7 @@
zh:
Widget:
PLURALNAME: 小工具
SINGULARNAME: 小工具
PLURALNAME: '小工具'
SINGULARNAME: '小工具'
WidgetArea:
PLURALNAME: '小工具区域'
SINGULARNAME: '小工具区域'
@ -14,4 +14,4 @@ zh:
WidgetDescription_ss:
CLICKTOADDWIDGET: '点击添加该小工具'
WidgetEditor_ss:
DELETE: 删除
DELETE: '删除'