/**
  * Prepares the parameters to publish to Facebook, this means setting any
  * field or destination dependent configuration.
  */
 protected function publishParameterPrepare(&$publication)
 {
     parent::publishParameterPrepare($publication);
     // It is mandatory to have action links for posts. Provide them if empty.
     $name = t('Visit');
     $link = $publication['params']['link'] ?: $GLOBALS['base_url'];
     // Actions is encoded in drupal as name|link. This should be prepared as an
     // array.
     if (!empty($publication['params']['actions'])) {
         list($name, $link) = explode('|', $publication['params']['actions']);
     }
     $publication['params']['actions'] = array(array('name' => $name, 'link' => $link));
 }
 /**
  * Deletes a publication from facebook stored in an entity.
  *
  * @param FacebookPublicationEntity $publication
  *   The fully loaded Facebook publication entity.
  *
  * @return boolean
  *   TRUE if the publication was deleted successfully.
  *
  * @throws FBAutopostException
  * @see FBAutopost::remoteDelete()
  */
 public function remoteEntityDelete(FacebookPublicationEntity $publication)
 {
     // Get a wrapper for the entity and extract the remote ID.
     $wrapper = entity_metadata_wrapper('facebook_publication', $publication);
     $remote_id = $wrapper->facebook_id->value();
     // If there is a remote ID in return, then delete the associated
     // publication.
     if (!empty($remote_id)) {
         return parent::remoteDelete($remote_id);
     } else {
         throw new FBAutopostException(t('Remote ID could not be found.'), FBAutopost::missing_param, WATCHDOG_ERROR);
     }
 }
 /**
  * Prepares the parameters to publish to Facebook, this means setting any
  * field or destination dependent configuration.
  */
 protected function publishParameterPrepare(&$publication)
 {
     parent::publishParameterPrepare($publication);
     $timezone = new DateTimeZone(variable_get('date_default_timezone', 'Europe/London'));
     if (is_numeric($publication['params']['start_time'])) {
         $start = new DateTime('@' . $publication['params']['start_time'], $timezone);
         $publication['params']['start_time'] = $start->format(DateTime::ISO8601);
     }
     if (is_numeric($publication['params']['end_time'])) {
         $end = new DateTime('@' . $publication['params']['end_time'], $timezone);
         $publication['params']['end_time'] = $end->format(DateTime::ISO8601);
     }
 }
 /**
  * Prepares the parameters to publish to Facebook, this means settings any
  * field or destination dependent configuration.
  */
 protected function publishParameterPrepare(&$publication)
 {
     parent::publishParameterPrepare($publication);
     // Add facebook support for uploading files
     $this->setFileUploadSupport(true);
     // Add @ in front of upload URL
     if (!empty($publication['params']['source'])) {
         $image = $publication['params']['source'];
         $uri = empty($image['uri']) ? file_load($image['fid'])->uri : $image['uri'];
         $publication['params']['source'] = '@' . drupal_realpath($uri);
         if (empty($publication['params']['name']) && !empty($image['title'])) {
             $publication['params']['name'] = check_plain($image['title']);
         }
     }
 }