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; }
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"; }
/** * @param $ids * @internal param int $id * @return SPUser */ protected function userData($ids) { return SPUser::getBaseData($ids); }
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; }
/** * 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; }