Her er de funktioner som gør trikset i eZ Publish
http://ez.noDu må udfra disse to funktioner kunne kode dine egne.
/*!
Moves the article placement with the given ID up.
*/
function moveUp( $id )
{
$db =& eZDB::globalDatabase();
$db->query_single( $qry, "SELECT * FROM eZArticle_ArticleCategoryLink
WHERE ArticleID='$id' AND CategoryID='$this->ID'" );
if ( is_numeric( $qry[$db->fieldName("ID")] ) )
{
$linkID = $qry[$db->fieldName("ID")];
$placement = $qry[$db->fieldName("Placement")];
$db->query_single( $qry, "SELECT ID, Placement FROM eZArticle_ArticleCategoryLink
WHERE Placement<'$placement' AND eZArticle_ArticleCategoryLink.CategoryID='$this->ID'
ORDER BY Placement DESC" );
$newPlacement = $qry[$db->fieldName("Placement")];
$listid = $qry[$db->fieldName("ID")];
if ( $newPlacement == $placement )
{
$placement += 1;
}
if ( is_numeric( $listid ) )
{
$db->query( "UPDATE eZArticle_ArticleCategoryLink SET Placement='$newPlacement' WHERE ID='$linkID'" );
$db->query( "UPDATE eZArticle_ArticleCategoryLink SET Placement='$placement' WHERE ID='$listid'" );
}
}
}
/*!
Moves the article placement with the given ID down.
*/
function moveDown( $id )
{
$db =& eZDB::globalDatabase();
$db->query_single( $qry, "SELECT * FROM eZArticle_ArticleCategoryLink
WHERE ArticleID='$id' AND CategoryID='$this->ID'" );
if ( is_numeric( $qry[$db->fieldName("ID")] ) )
{
$linkID = $qry[$db->fieldName("ID")];
$placement = $qry[$db->fieldName("Placement")];
$db->query_single( $qry, "SELECT ID, Placement FROM eZArticle_ArticleCategoryLink
WHERE Placement>'$placement' AND eZArticle_ArticleCategoryLink.CategoryID='$this->ID' ORDER BY Placement ASC" );
$newPlacement = $qry[$db->fieldName("Placement")];
$listid = $qry[$db->fieldName("ID")];
if ( $newPlacement == $placement )
{
$newPlacement += 1;
}
if ( is_numeric( $listid ) )
{
$db->query( "UPDATE eZArticle_ArticleCategoryLink SET Placement='$newPlacement' WHERE ID='$linkID'" );
$db->query( "UPDATE eZArticle_ArticleCategoryLink SET Placement='$placement' WHERE ID='$listid'" );
}
}
}