/**
  * Generate the move button.
  *
  * @param array $row The current row.
  *
  * @return string
  */
 private function generateMoveButton($row)
 {
     $clipboard = \Session::getInstance()->get('CLIPBOARD');
     $isClipboard = !empty($clipboard[$this->definition->getName()]);
     // Paste buttons
     if ($isClipboard) {
         $clipboard = $clipboard[$this->definition->getName()];
         if (\Input::get('mode') == 'cut' && $this->isChildOf($row, $clipboard['id'])) {
             return \Image::getHtml('pasteafter_.gif', $this->translator->translate('pasteafter.0', $this->definition->getName()));
         }
         $url = \Backend::addToUrl('act=' . $clipboard['mode'] . '&mode=1&pid=' . $row['id'] . '&id=' . $clipboard['id']);
         return sprintf(' <a href="%s" title="%s" onclick="Backend.getScrollOffset()">%s</a>', $url, specialchars(sprintf($this->translator->translate('pasteafter.1', $this->definition->getName()), $row['id'])), \Image::getHtml('pasteafter.gif', $this->translator->translate('pasteafter.0', $this->definition->getName())));
     }
     return '';
 }
 /**
  * Save new state in database.
  *
  * @param Definition $definition Data container definition.
  * @param int        $recordId   Data record id.
  * @param array      $data       Change data set.
  *
  * @return void
  */
 private function save(Definition $definition, $recordId, array $data)
 {
     // Filter empty values which should not be saved.
     foreach ($data as $column => $value) {
         if ($value != '') {
             continue;
         }
         $alwaysSave = $definition->get(['fields', $column, 'eval', 'alwaysSave'], false);
         $doNotSaveEmpty = $definition->get(['fields', $column, 'eval', 'doNotSaveEmpty'], false);
         if (!$alwaysSave && $doNotSaveEmpty) {
             unset($data[$column]);
         }
     }
     // Add tstamp if field exists.
     if (empty($data['tstamp'] && $this->database->fieldExists('tstamp', $definition->getName()))) {
         $data['tstamp'] = time();
     }
     // Store the data.
     $this->database->prepare(sprintf('UPDATE %s %s WHERE id=?', $definition->getName(), '%s'))->set($data)->execute($recordId);
 }