"gaspertrix/laravel-backpack-dropzone-field": "^1.0",
"cviebrock/eloquent-sluggable": "^4.8",
"cocur/slugify": "^3.2",
- "lavary/laravel-menu": "^1.7"
+ "lavary/laravel-menu": "^1.7",
+ "graham-campbell/markdown": "^11.0"
},
"require-dev": {
"filp/whoops": "^2.3",
use Cubist\Backpack\app\Magic\Menu\Menu;
use Cubist\Backpack\app\Magic\Models\CMSPage;
use Illuminate\Support\Str;
-use Illuminate\View\View;
class CubistPageController extends CubistFrontController
{
// Page templates can modify/inject data before it is passed to the view
$page->getUsedTemplate()->setData($this->data);
- return view('pages.' . $page->template, $this->data);
+ return view('pages.' . $page->getAttributeValue('template'), $this->data);
}
public function catchall($main = '', $subs = '')
$path = 'home';
}
$nav = Menu::getNavigation();
- $item = $nav->findOneByHref($path);
+ $item = $nav->findItemWithURL($path);
if (null === $item) {
$this->_404();
}
public function addFakeField(array $attributes)
{
$attributes['fake'] = true;
+ if (!isset($attributes['store_in'])) {
+ $attributes['store_in'] = 'extras';
+ }
return $this->addField($attributes);
}
return $this->findOneBy('href', $href);
}
+ public function findAllBy($param, $search)
+ {
+ $res = [];
+ if ($this->get($param) == $search) {
+ $res[] = $this;
+ }
+ foreach ($this->getChildren() as $child) {
+ $res = array_merge($res, $child->findAllBy($param, $search));
+ }
+
+ return $res;
+ }
+
+ public function findItemWithURL($href)
+ {
+ foreach ($this->findAllBy('href', $href) as $item) {
+ if (!($item instanceof PageItem)) {
+ return $item;
+ }
+ /** @var $item PageItem */
+ if (stristr($item->getPage()->template, 'redirection')) {
+ continue;
+ }
+ return $item;
+ }
+ }
+
/**
* @return string
*/
return $href;
}
+
/**
* @param string $href
*/
namespace Cubist\Backpack\app\Magic\Models;
use Cubist\Backpack\app\Magic\Controllers\CubistMagicController;
-use Cubist\Backpack\app\Template\Navigation;
-use Cubist\Backpack\app\Template\Redirection;
use Cubist\Backpack\app\Template\TemplateAbstract;
use Cubist\Util\Json;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\Table;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
-use mysql_xdevapi\Exception;
use Spatie\MediaLibrary\HasMedia\HasMedia;
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
use Spatie\MediaLibrary\Models\Media;
$this->fakeColumns = array_unique($this->fakeColumns);
foreach ($this->fakeColumns as $fakeColumn) {
- $table->addColumn($fakeColumn, 'text');
+ $table->addColumn($fakeColumn, 'text', ['notnull' => false]);
}
if ($this->timestamps) {
protected function _prepareData($attributes)
{
- return $attributes;
+ $res = [];
+ foreach ($attributes as $k => $attribute) {
+ if (stristr($k, '___')) {
+ continue;
+ }
+ if (stristr($k, 'bunchmultiple_')) {
+ continue;
+ }
+ $res[$k] = $attribute;
+ }
+ return $res;
}
public function update(array $attributes = [], array $options = [])