Bug #19956

Page alias not publishing to LIVE from any workspace

Added by David Wallace over 4 years ago. Updated 10 months ago.

Status:Needs Feedback Start date:2009-02-02
Priority:Should have Due date:
Assignee:- % Done:

0%

Category:-
Target version:-
TYPO3 Version:4.2 PHP Version:
Votes: 1 (View)

Description

NB: relisted as previous issue does not seem to have been addressed (0008657)
This happens for both of the following situations;

1) Update an alias entry for a page that already exists in LIVE, then publish to LIVE
2) Create a new page in a workspace and add a page alias, then publish to LIVE

LIVE editing of page alias works fine, but updates to page alias in any workspace are not transferred during the publish process. The alias will not publish via either the entire workspace publish or individual page publish, no errors are reported by Typo3 during the publishing process.

Create a new page in a workspace and add a page alias, then publish to LIVE. Page alias has disappeared

Original report number 0008657 but no action taken by team. Upgraded report to major as impact on users in workspace is growing.... creating new content in workspace requires manual re-creation of page alias after publishing
(issue imported from #M10330)


Related issues

duplicated by Workspaces & Versioning - Bug #18928: Page alias not publishing to LIVE from any workspace Closed 2008-06-09

History

Updated by Marcus Krause over 4 years ago

Pascal claims in #8657:
This is also the case for 'Speaking URL path segment' - It is not transferred to the LIVE environment upon publish.

Updated by Martin Holtz about 4 years ago

see: http://typo3.org/documentation/document-library/core-documentation/doc_core_inside/4.2.0/view/2/7/

Unique fields like a page alias or user name are tricky in a versioning scenario because the publication process must perform a check if the field is unique in the “Live” situation. The implications of implementing this means that we have chosen a solution where unique fields are simply not swapped at all! It means that publication of a new version of a page cannot and will not alter the alias of the live version. The “Live” unique value will remain until changed in the live version.

You can hide fields with the “unique” keyword when they are offline versions. This is done with the display condition:

'displayCond' => 'VERSION:IS:false',

so, it seems to be a missing feature to me.

Updated by David Wallace almost 4 years ago

Will look into this further, but this is a feature that should be assessed to be added.

I am using workspaces for editors to create/modify content and preview. If they create new pages and include an alias (as per our standard practice), they will need to manually change all of these once the content is released from the workspace. This would seem to be a reasonable, functional, expectation?

I would expect at the very least that any alias that is being updated in a workspace that already exists in LIVE would be locked against an update? It just seems odd that we change change (almost) everything in a workspace except the alias.

Fingers crossed someone can provide a workaround to this, will check out the 'displayCond' config also.

Cheers

Updated by Thomas Trethan over 2 years ago

Idea: make unique fields like alias unique within all workspaces.
adaption in typo3 4.5 lts that worked for me:

t3lib/class.t3lib_tcemain.php:

1369c1369
< if ($field && $realPid >= 0) { // Field is NOT set for flexForms - which also means that uniqueInPid and unique is NOT available for flexForm fields! Also getUnique should not be done for versioning and if PID is 1 ($realPid<0) then versioning is happening...
--

if ($field) { // Field is NOT set for flexForms - which also means that uniqueInPid and unique is NOT available for flexForm fields! Also getUnique should not be done for versioning and if PID is 1 ($realPid<0) then versioning is happening...
2042c2042,2046
< $whereAdd .= ' AND pid>=0';
--
$tmp = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('t3ver_oid', $table, 'uid='.intval($id)); if ($tmp0) { $oid = intval($tmp0['t3ver_oid']); $whereAdd .= ' AND uid!='.$oid.' AND t3ver_oid!='.$oid; }

typo3/sysext/version/class.tx_version_tcemain.php

767c767
< $keepFields = $tcemainObj->getUniqueFields($table);
---

$keepFields = array();

and of course:

unset($TCA['pages']['columns']['alias']['displayCond']);

Updated by Tolleiv Nietsch almost 2 years ago

  • Status changed from New to Needs Feedback
  • Target version deleted (0)

would you mind to attach a patch file or push it to git.typo3.org as described in http://wiki.typo3.org/Contribution_Walkthrough_Tutorials

Updated by Tolleiv Nietsch over 1 year ago

still relevant?

Updated by Michael Cannon about 1 year ago

still relevant, will try for the patch TYPO3 4.5.15. Also, trying to work around issues of appending index on uniquelocal fields for versions of original records.

Updated by Stefan Neufeind 10 months ago

Michael, please have a look ...

Also available in: Atom PDF