示例#1
0
 protected function parseName($entry, $name, $pattern, $addExt = false)
 {
     $nameArray = explode('.', $name);
     $ext = strtolower(array_pop($nameArray));
     $name = implode('.', $nameArray);
     $user = SPUser::getBaseData((int) $entry->get('owner'));
     // @todo change to the global method
     $placeHolders = array('/{id}/', '/{orgname}/', '/{entryname}/', '/{oid}/', '/{ownername}/', '/{uid}/', '/{username}/', '/{nid}/');
     $replacements = array($entry->get('id'), $name, $entry->get('nid'), isset($user->id) ? $user->id : null, isset($user->name) ? SPLang::nid($user->name) : 'guest', Sobi::My('id'), SPLang::nid(Sobi::My('name')), $this->nid);
     $fileName = preg_replace($placeHolders, $replacements, $pattern);
     return $addExt ? $fileName . '.' . $ext : $fileName;
 }
示例#2
0
 public static function userGetter($name, $value, $params = null, $class = null, $format = '%user')
 {
     $params = self::checkArray($params);
     if (!isset($params['id'])) {
         $params['id'] = SPLang::nid($name);
     }
     if ($class) {
         $params['class'] = $class;
     }
     $user = null;
     $user = SPUser::getBaseData((int) $value);
     $userData = null;
     if ($user) {
         $replacements = array();
         preg_match_all('/\\%[a-z]*/', $format, $replacements);
         $placeholders = array();
         if (isset($replacements[0]) && count($replacements[0])) {
             foreach ($replacements[0] as $placeholder) {
                 $placeholders[] = str_replace('%', null, $placeholder);
             }
         }
         if (count($replacements)) {
             foreach ($placeholders as $attribute) {
                 if (isset($user->{$attribute})) {
                     $format = str_replace('%' . $attribute, $user->{$attribute}, $format);
                 }
             }
             $userData = $format;
         }
     }
     $params = self::params($params);
     $f = "\n";
     $f .= '<div class="spOutput">';
     $f .= "\n\t";
     $f .= '<span ' . $params . '>' . $userData . '</span>';
     $f .= "\n";
     $f .= '</div>';
     $f .= "\n";
     Sobi::Trigger('Field', ucfirst(__FUNCTION__), array(&$f));
     return "\n<!-- User Getter '{$name}' Output -->{$f}<!-- User Getter '{$name}' End -->\n\n";
 }
示例#3
0
 /**
  * @param $ids
  * @internal param int $id
  * @return SPUser
  */
 protected function userData($ids)
 {
     return SPUser::getBaseData($ids);
 }
示例#4
0
 protected function revisions()
 {
     $revision = SPFactory::message()->getRevision(SPRequest::cmd('revision'));
     $sid = SPRequest::sid();
     $fid = SPRequest::cmd('fid');
     if (strstr($fid, 'field_')) {
         $fid = SPFactory::db()->select('fid', 'spdb_field', array('nid' => $fid, 'section' => Sobi::Section()))->loadResult();
         /** @var SPField $field */
         $field = SPFactory::Model('field');
         $field->init($fid);
         $field->loadData($sid);
         if (isset($revision['changes']['fields'][$field->get('nid')])) {
             $revision = $revision['changes']['fields'][$field->get('nid')];
         } else {
             $revision = "";
         }
         $current = $field->getRaw();
         if (!is_array($current)) {
             try {
                 $current = SPConfig::unserialize($current);
             } catch (SPException $x) {
             }
         }
         if (!is_array($revision)) {
             try {
                 $revision = SPConfig::unserialize($revision);
             } catch (SPException $x) {
             }
         }
         try {
             $data = $field->compareRevisions($revision, $current);
         } catch (SPException $x) {
             if (is_array($current)) {
                 $current = print_r($current, true);
             }
             if (is_array($revision)) {
                 $revision = print_r($revision, true);
             }
             $data = array('current' => $current, 'revision' => $revision);
         }
     } else {
         $i = str_replace('entry.', null, $fid);
         if (isset($revision['changes'][$i])) {
             $revision = $revision['changes'][$i];
         } else {
             $revision = "";
         }
         switch ($i) {
             case 'owner':
             case 'updater':
                 $currentUser = null;
                 $pastUser = null;
                 if ($this->_model->get($i)) {
                     $currentUser = SPUser::getBaseData((int) $this->_model->get($i));
                     $currentUser = $currentUser->name . ' (' . $currentUser->id . ')';
                 }
                 if ($revision) {
                     $pastUser = SPUser::getBaseData((int) $revision);
                     $pastUser = $pastUser->name . ' (' . $pastUser->id . ')';
                 }
                 $data = array('current' => $currentUser, 'revision' => $pastUser);
                 break;
             default:
                 $data = array('current' => $this->_model->get($i), 'revision' => $revision);
                 break;
         }
     }
     if (!SPRequest::bool('html', false, 'post')) {
         $data = array('current' => html_entity_decode(strip_tags($data['current']), ENT_QUOTES, 'UTF-8'), 'revision' => html_entity_decode(strip_tags($data['revision']), ENT_QUOTES, 'UTF-8'));
     }
     $data = array('current' => explode("\n", $data['current']), 'revision' => explode("\n", $data['revision']));
     $diff = SPFactory::Instance('services.third-party.diff.lib.Diff', $data['revision'], $data['current']);
     $renderer = SPFactory::Instance('services.third-party.diff.lib.Diff.Renderer.Html.SideBySide');
     //		$renderer = SPFactory::Instance( 'services.third-party.diff.lib.Diff.Renderer.Html.Inline' );
     $difference = $diff->Render($renderer);
     $data['diff'] = $difference;
     SPFactory::mainframe()->cleanBuffer()->customHeader();
     echo json_encode($data);
     exit;
 }
示例#5
0
 /**
  * Returns selected property of the a selected user
  * e.g SobiPro::User( 'id' ); SobiPro::User( 'name' );
  *
  * @param $id
  * @param string $property
  * @return mixed
  */
 public static function User($id, $property)
 {
     $property = trim($property);
     if (in_array($property, array('password', 'block', 'sendEmail', 'activation', 'params'))) {
         return false;
     }
     $id = (int) $id;
     static $loaded = array();
     if (!isset($loaded[$id])) {
         $loaded[$id] = SPUser::getBaseData($id);
     }
     return isset($loaded[$id]->{$property}) ? $loaded[$id]->{$property} : null;
 }