* Navigation in Sidebar

* Seitenbaum: Jugendreisen und Reisemagazin mit einbeziehen; Ursprüngliche Sortierung berücksichtigen
* Neue Datenbank-Spalten für automatisch generierte Seitenübersichtsboxen und Datenbank
* Unterstützung statisch festgelegter URLs (page.real_url_path) - wird aus SEO-technischen Gründen benötigt, um vorerst die alten URLs zu behalten
* Redirect-Tabelle: Hier können alte URLs mit page-Einträge verknüpft werden. Bei Aufruf so einer URL wird auf die URL der verknüpften page umgeleitet

SQL:

UPDATE page SET template = 'overview' WHERE slug IN ('iran-reisen', 'marokko-urlaub');
UPDATE page SET `order` = 0 WHERE slug = 'aegypten-reisen';
UPDATE page SET `order` = 1 WHERE slug = 'israel-reisen';
UPDATE page SET `order` = 2 WHERE slug = 'jordanien-reisen';
UPDATE page SET `order` = 3 WHERE slug = 'iran-reisen';
UPDATE page SET `order` = 4 WHERE slug = 'marokko-urlaub';
UPDATE page SET `order` = 5 WHERE slug = 'oman-reisen';
UPDATE page SET `order` = 6 WHERE slug = 'tuerkei-urlaub';

UPDATE page SET template = 'overview' WHERE
  (slug IN ('jugendreisen', 'reisemagazin') AND lvl = 0) OR
  (catalog_id IN (6, 14) AND owner = 0);

-- Request URL /create-tree in browser to re-create the page tree

ALTER TABLE page ADD COLUMN real_url_path VARCHAR(200) DEFAULT NULL;
CREATE UNIQUE INDEX UNIQ_140AB620E2652A2A ON page (real_url_path);
UPDATE page p INNER JOIN catalog c ON c.id = p.catalog_id SET p.real_url_path = CONCAT('/', c.slug, '/', p.slug, '.html');

ALTER TABLE page ADD COLUMN box_body TEXT DEFAULT NULL;
ALTER TABLE page ADD COLUMN box_image_url VARCHAR(200) DEFAULT NULL;
ALTER TABLE page ADD COLUMN box_star VARCHAR(255) DEFAULT NULL;
ALTER TABLE page ADD COLUMN box_discount VARCHAR(255) DEFAULT NULL;
ALTER TABLE page ADD COLUMN content_new TEXT DEFAULT NULL AFTER content;

ALTER TABLE page DROP COLUMN preview_image_url;

CREATE TABLE redirect (id INT AUTO_INCREMENT NOT NULL, page_id INT DEFAULT NULL, source_url_path VARCHAR(200) NOT NULL, UNIQUE INDEX UNIQ_C30C9E2B56207465 (source_url_path), INDEX IDX_C30C9E2BC4663E4 (page_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
ALTER TABLE redirect ADD CONSTRAINT FK_C30C9E2BC4663E4 FOREIGN KEY (page_id) REFERENCES page (id);
ALTER TABLE redirect MODIFY COLUMN page_id INT NOT NULL;



git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3293 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
uli 2017-02-15 15:36:15 +00:00
parent 03f50fc03c
commit 6bb5c271c6
15 changed files with 596 additions and 125 deletions

View file

@ -160,6 +160,13 @@ class Page
*/
private $content;
/**
* @ORM\Column(type="text", length=65535, nullable=true)
*
* @todo Remove this field as soon as the new page is launched and instead use "content" again
*/
protected $contentNew;
/**
* @var string
*
@ -238,10 +245,30 @@ class Page
*/
protected $template;
/**
* @ORM\Column(type="string", length=200, nullable=true, unique=true)
*/
protected $realUrlPath;
/**
* @ORM\Column(type="string", length=65535, nullable=true)
*/
protected $boxBody;
/**
* @ORM\Column(type="string", length=200, nullable=true)
*/
protected $boxImageUrl;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $previewImageUrl;
protected $boxStar;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $boxDiscount;
/**
@ -553,7 +580,31 @@ class Page
*/
public function getContent()
{
return $this->content;
return $this->contentNew ?? $this->content;
}
/**
* Set contentNew
*
* @param string $contentNew
*
* @return Page
*/
public function setContentNew($contentNew)
{
$this->contentNew = $contentNew;
return $this;
}
/**
* Get contentNew
*
* @return string
*/
public function getContentNew()
{
return $this->contentNew;
}
/**
@ -991,30 +1042,6 @@ class Page
return $this->template;
}
/**
* Set previewImageUrl
*
* @param string $previewImageUrl
*
* @return Page
*/
public function setPreviewImageUrl($previewImageUrl)
{
$this->previewImageUrl = $previewImageUrl;
return $this;
}
/**
* Get previewImageUrl
*
* @return string
*/
public function getPreviewImageUrl()
{
return $this->previewImageUrl;
}
/**
* Set travelProgram
*
@ -1039,8 +1066,29 @@ class Page
return $this->travelProgram;
}
/**
* @param string|null $realUrlPath
*
* @return Page
*/
public function setRealUrlPath($realUrlPath)
{
$this->realUrlPath = $realUrlPath;
return $this;
}
public function getRealUrlPath()
{
return $this->realUrlPath;
}
public function getUrlPath()
{
if ($this->realUrlPath !== null)
{
return $this->realUrlPath;
}
$urlParts = [];
$page = $this;
do
@ -1050,4 +1098,105 @@ class Page
} while ($page !== null);
return '/'. implode('/', array_reverse($urlParts));
}
/**
* Set boxBody
*
* @param string $boxBody
*
* @return Page
*/
public function setBoxBody($boxBody)
{
$this->boxBody = $boxBody;
return $this;
}
/**
* Get boxBody
*
* @return string
*/
public function getBoxBody()
{
return $this->boxBody;
}
/**
* Set boxImageUrl
*
* @param string $boxImageUrl
*
* @return Page
*/
public function setBoxImageUrl($boxImageUrl)
{
$this->boxImageUrl = $boxImageUrl;
return $this;
}
/**
* Get boxImageUrl
*
* @return string
*/
public function getBoxImageUrl()
{
return $this->boxImageUrl;
}
/**
* Set boxStar
*
* @param string $boxStar
*
* @return Page
*/
public function setBoxStar($boxStar)
{
$this->boxStar = $boxStar;
return $this;
}
/**
* Get boxStar
*
* @return string
*/
public function getBoxStar()
{
return $this->boxStar;
}
/**
* Set boxDiscount
*
* @param string $boxDiscount
*
* @return Page
*/
public function setBoxDiscount($boxDiscount)
{
$this->boxDiscount = $boxDiscount;
return $this;
}
/**
* Get boxDiscount
*
* @return string
*/
public function getBoxDiscount()
{
return $this->boxDiscount;
}
public function getHasChildren()
{
return $this->lft != null && $this->rgt != null && $this->rgt - $this->lft > 1;
}
}