本文整理汇总了PHP中SPLoader::path方法的典型用法代码示例。如果您正苦于以下问题:PHP SPLoader::path方法的具体用法?PHP SPLoader::path怎么用?PHP SPLoader::path使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SPLoader
的用法示例。
在下文中一共展示了SPLoader::path方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveToken
public function saveToken($token)
{
$arrdef = SPFactory::Instance('types.array');
$def = $arrdef->fromXML($this->definition, 'repository');
$ndef = array();
$u = false;
$rid = null;
foreach ($def['repository'] as $k => $v) {
if ($u) {
$ndef['token'] = $token;
}
if ($k == 'id') {
$rid = $v;
}
if ($k == 'url') {
$u = true;
}
$ndef[$k] = $v;
}
$path = SPLoader::path("etc.repos.{$rid}.repository", 'front', true, 'xml');
$file = SPFactory::Instance('base.fs.file', $path);
$xdef = SPFactory::Instance('types.array');
$file->content($xdef->toXML($ndef, 'repository'));
$file->save();
}
示例2: __construct
public function __construct()
{
$ident = SPRequest::cmd('session') ? SPRequest::cmd('ProgressMsg' . SPRequest::cmd('session'), null, 'cookie') : SPRequest::cmd('ProgressMsg', null, 'cookie');
$this->file = SPLoader::path('tmp.' . $ident, 'front', false, 'tmp');
if (SPFs::exists($this->file)) {
$content = json_decode(SPFs::read($this->file), true);
$this->message = $content['message'];
$this->type = $content['type'];
$this->progress = $content['progress'];
$this->interval = $content['interval'];
}
}
示例3: validate
public function validate()
{
$type = $this->type == 'SobiProApp' ? 'application' : $this->type;
$schemaDef = SPLoader::path('lib.services.installers.schemas.' . $type, 'front', false, 'xsd');
if (!SPFs::exists($schemaDef) || time() - filemtime($schemaDef) > 60 * 60 * 24 * 7) {
$connection = SPFactory::Instance('services.remote');
$def = "https://xml.sigsiu.net/SobiPro/{$type}.xsd";
$connection->setOptions(array('url' => $def, 'connecttimeout' => 10, 'header' => false, 'returntransfer' => true, 'ssl_verifypeer' => false, 'ssl_verifyhost' => 2));
$schema =& SPFactory::Instance('base.fs.file', SPLoader::path('lib.services.installers.schemas.' . $type, 'front', false, 'xsd'));
$file = $connection->exec();
if (!strlen($file)) {
throw new SPException(SPLang::e('CANNOT_ACCESS_SCHEMA_DEF', $def));
}
$schema->content($file);
$schema->save();
$schemaDef = $schema->filename();
}
if (!$this->definition->schemaValidate($schemaDef)) {
throw new SPException(SPLang::e('CANNOT_VALIDATE_SCHEMA_DEF_AT', str_replace(SOBI_ROOT . DS, null, $this->xmlFile), $def));
}
}
示例4: screen
private function screen()
{
$view =& SPFactory::View('view', true);
$view->setTemplate('config.help');
if (SPLoader::path('etc.repos.sobipro_core.repository', 'front', true, 'xml')) {
$repository = SPFactory::Instance('services.installers.repository');
$repository->loadDefinition(SPLoader::path("etc.repos.sobipro_core.repository", 'front', true, 'xml'));
try {
$repository->connect();
} catch (SPException $x) {
$view->assign(SPLang::e('REPO_ERR', $x->getMessage()), 'message');
}
try {
$response = $repository->help($repository->get('token'), SPRequest::cmd('mid'));
$view->assign($response, 'message');
} catch (SPException $x) {
$view->assign(SPLang::e('REPO_ERR', $x->getMessage()), 'message');
}
} else {
$view->assign(Sobi::Txt('MSG.HELP_ADD_CORE_REPO'), 'message');
}
$view->display();
}
示例5: getNews
private function getNews()
{
$out = array();
$path = SPLoader::path('etc.news', 'front', false, 'xml');
if (SPFs::exists($path) && time() - filemtime($path) < 60 * 60 * 12) {
$content = SPFs::read(SPLoader::path('etc.news', 'front', false, 'xml'));
} else {
try {
$connection = SPFactory::Instance('services.remote');
$news = 'http://rss.sigsiu.net';
$connection->setOptions(array('url' => $news, 'connecttimeout' => 10, 'header' => false, 'returntransfer' => true));
$file = SPFactory::Instance('base.fs.file', $path);
$content = $connection->exec();
$cinf = $connection->info();
if (isset($cinf['http_code']) && $cinf['http_code'] != 200) {
return Sobi::Error('about', sprintf('CANNOT_GET_NEWS', $news, $cinf['http_code']), SPC::WARNING, 0, __LINE__, __FILE__);
}
$file->content($content);
$file->save();
} catch (SPException $x) {
return Sobi::Error('about', SPLang::e('CANNOT_LOAD_NEWS', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
}
}
try {
if (strlen($content)) {
$news = new DOMXPath(DOMDocument::loadXML($content));
$atom = false;
if ($atom) {
//Atom
$news->registerNamespace('atom', 'http://www.w3.org/2005/Atom');
$out['title'] = $news->query('/atom:feed/atom:title')->item(0)->nodeValue;
$items = $news->query('/atom:feed/atom:entry[*]');
$c = 5;
$open = false;
foreach ($items as $item) {
$date = $item->getElementsByTagName('updated')->item(0)->nodeValue;
if (!$open && time() - strtotime($date) < 60 * 60 * 24) {
$open = true;
}
$feed = array('url' => $item->getElementsByTagName('link')->item(0)->nodeValue, 'title' => $item->getElementsByTagName('title')->item(0)->nodeValue, 'content' => $item->getElementsByTagName('content')->item(0)->nodeValue);
if (!$c--) {
break;
}
$out['feeds'][] = $feed;
}
} else {
//RSS
$out['title'] = $news->query('/rss/channel/title')->item(0)->nodeValue;
$items = $news->query('/rss/channel/item[*]');
$c = 5;
$open = false;
foreach ($items as $item) {
$date = $item->getElementsByTagName('pubDate')->item(0)->nodeValue;
if (!$open && time() - strtotime($date) < 60 * 60 * 24) {
$open = true;
}
$feed = array('url' => $item->getElementsByTagName('link')->item(0)->nodeValue, 'title' => $item->getElementsByTagName('title')->item(0)->nodeValue, 'content' => $item->getElementsByTagName('description')->item(0)->nodeValue, 'image' => $item->getElementsByTagName('enclosure')->item(0)->attributes->getNamedItem('url')->nodeValue);
if (!$c--) {
break;
}
$out['feeds'][] = $feed;
}
}
}
if ($open) {
SPFactory::header()->addJsCode('SobiPro.jQuery( document ).ready( function () { SobiPro.jQuery( \'#SobiProNews\' ).trigger(\'click\'); } );');
}
} catch (DOMException $x) {
return Sobi::Error('about', SPLang::e('CANNOT_LOAD_NEWS', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
}
return $out;
}
示例6: listTemplates
protected function listTemplates($tpl = null, $cmsOv = true)
{
SPFactory::header()->addJsFile('dtree')->addCssFile('dtree', true);
SPLoader::loadClass('base.fs.directory_iterator');
$ls = Sobi::Cfg('live_site') . 'media/sobipro/tree';
$nodes = null;
$count = 0;
$tpl = Sobi::FixPath($tpl ? $tpl : SPLoader::dirPath('usr.templates'));
if (Sobi::Section()) {
$realName = Sobi::Txt('TP.INFO');
$iTask = Sobi::Url(array('task' => 'template.info', 'template' => basename($tpl), 'sid' => Sobi::Section()));
$nodes .= "spTpl.add( -123, 0,'{$realName}','{$iTask}', '', '', '{$ls}/info.png' );\n";
if (file_exists("{$tpl}/config.xml")) {
$realName = Sobi::Txt('TP.SETTINGS');
$iTask = Sobi::Url(array('task' => 'template.settings', 'template' => basename($tpl), 'sid' => Sobi::Section()));
$nodes .= "spTpl.add( -120, 0,'{$realName}','{$iTask}', '', '', '{$ls}/settings.png' );\n";
}
}
$this->travelTpl(new SPDirectoryIterator($tpl), $nodes, 0, $count);
if ($cmsOv) {
$cms = SPFactory::CmsHelper()->templatesPath();
if (is_array($cms) && isset($cms['name']) && isset($cms['data']) && is_array($cms['data']) && count($cms['data'])) {
$count++;
if (isset($cms['icon'])) {
$nodes .= "spTpl.add( {$count}, 0, '{$cms['name']}', '', '', '', '{$cms['icon']}', '{$cms['icon']}' );\n";
} else {
$nodes .= "spTpl.add( {$count}, 0, '{$cms['name']}' );\n";
}
$current = $count;
foreach ($cms['data'] as $name => $path) {
$count++;
$nodes .= "spTpl.add( {$count}, {$current},'{$name}' );\n";
$this->travelTpl(new SPDirectoryIterator($path), $nodes, $count, $count, true);
}
}
}
if (Sobi::Section()) {
$file = SPLoader::path('usr.templates.' . Sobi::Cfg('section.template', SPC::DEFAULT_TEMPLATE) . '.template', 'front', true, 'xml');
$def = new DOMDocument();
$def->load($file);
$xdef = new DOMXPath($def);
$t = $xdef->query('/template/name')->item(0)->nodeValue;
} else {
$t = Sobi::Txt('GB.TEMPLATES');
}
SPFactory::header()->addJsCode("\n\t\t\ticons = {\n\t\t\t\t\t\troot : '{$ls}/base.gif',\n\t\t\t\t\t\tfolder : '{$ls}/folder.gif',\n\t\t\t\t\t\tfolderOpen : '{$ls}/folderopen.gif',\n\t\t\t\t\t\tnode : '{$ls}/page.gif',\n\t\t\t\t\t\tempty : '{$ls}/empty.gif',\n\t\t\t\t\t\tline : '{$ls}/line.gif',\n\t\t\t\t\t\tjoin : '{$ls}/join.gif',\n\t\t\t\t\t\tjoinBottom : '{$ls}/joinbottom.gif',\n\t\t\t\t\t\tplus : '{$ls}/plus.gif',\n\t\t\t\t\t\tplusBottom : '{$ls}/plusbottom.gif',\n\t\t\t\t\t\tminus : '{$ls}/minus.gif',\n\t\t\t\t\t\tminusBottom\t: '{$ls}/minusbottom.gif',\n\t\t\t\t\t\tnlPlus : '{$ls}/nolines_plus.gif',\n\t\t\t\t\t\tnlMinus : '{$ls}/nolines_minus.gif'\n\t\t\t};\n\t\t\tvar spTpl = new dTree( 'spTpl', icons );\t\n\n\t\t\tSobiPro.jQuery( document ).ready( function ()\n\t\t\t{\n\t\t\t\tspTpl.add(0, -1, '{$t}' );\n\n\t\t\t\t{$nodes} \n\n\t\t\t\ttry { document.getElementById( 'spTpl' ).innerHTML = spTpl } catch( e ) {}\n\t\t\t} );\n\t\t");
/** for some reason jQuery is not able to add the tree */
return "<div id=\"spTpl\"></div>";
}
示例7: templatePath
protected function templatePath($tpl)
{
$file = explode('.', $tpl);
if (strstr($file[0], 'cms:')) {
$file[0] = str_replace('cms:', null, $file[0]);
$file = SPFactory::mainframe()->path(implode('.', $file));
$template = SPLoader::path($file, 'root', false, null);
} else {
$template = SOBI_PATH . '/usr/templates/' . str_replace('.', '/', $tpl);
}
return $template;
}
示例8: storeView
/**
*/
public function storeView($head)
{
if (!Sobi::Cfg('cache.xml_enabled') || $this->_cachedView || Sobi::My('id') && Sobi::Cfg('cache.xml_no_reg')) {
return false;
}
if ($this->view['xml']) {
$xml = $this->view['xml'];
$template = Sobi::Reg('cache_view_template');
if (!$template) {
$template = $this->view['template'];
$template = str_replace(SPLoader::translateDirPath(Sobi::Cfg('section.template'), 'templates'), null, $template);
}
$root = $xml->documentElement;
$root->removeChild($root->getElementsByTagName('visitor')->item(0));
if ($root->getElementsByTagName('messages')->length) {
$root->removeChild($root->getElementsByTagName('messages')->item(0));
}
/** @var $header DOMDocument */
$header = SPFactory::Instance('types.array')->toXML($head, 'header', true);
$root->appendChild($xml->importNode($header->documentElement, true));
if ($this->view['data'] && count($this->view['data'])) {
$data = SPFactory::Instance('types.array')->toXML($this->view['data'], 'cache-data', true);
$root->appendChild($xml->importNode($data->documentElement, true));
}
$request = $this->viewRequest();
$request['template'] = $template;
$configFiles = SPFactory::registry()->get('template_config');
$request['configFile'] = str_replace('"', "'", json_encode($configFiles));
$request['cid'] = 'NULL';
$request['created'] = 'FUNCTION:NOW()';
$fileName = md5(serialize($request));
$request['fileName'] = $fileName;
$filePath = SPLoader::path('var.xml.' . $fileName, 'front', false, 'xml');
$content = $xml->saveXML();
$content = str_replace(' ', ' ', $content);
$content = preg_replace('/[^\\x{0009}\\x{000a}\\x{000d}\\x{0020}-\\x{D7FF}\\x{E000}-\\x{FFFD}]+/u', null, $content);
$matches = array();
preg_match_all('/<(category|entry|subcategory)[^>]*id="(\\d{1,})"/', $content, $matches);
try {
$cid = SPFactory::db()->insert('spdb_view_cache', $request, false, true)->insertid();
$relations = array(SPRequest::sid() => array('cid' => $cid, 'sid' => SPRequest::sid()));
if (isset($matches[2])) {
$ids = array_unique($matches[2]);
foreach ($ids as $sid) {
$relations[$sid] = array('cid' => $cid, 'sid' => $sid);
}
}
SPFactory::db()->insertArray('spdb_view_cache_relation', $relations);
SPFs::write($filePath, $content);
} catch (SPException $x) {
Sobi::Error('XML-Cache', $x->getMessage());
}
}
}
示例9: displayForm
/**
*
*/
public function displayForm()
{
Sobi::Trigger('Display', $this->name(), array(&$this));
$action = $this->key('action');
echo '<div class="SobiPro" id="SobiPro">' . "\n";
if ($this->get('_compatibility')) {
echo SPFactory::AdmToolbar()->render();
echo $this->legacyMessages();
}
echo $action ? "\n<form action=\"{$action}\" method=\"post\" name=\"adminForm\" id=\"SPAdminForm\" enctype=\"multipart/form-data\" accept-charset=\"utf-8\" >\n" : null;
foreach ($this->_templates as $tpl) {
$template = SPLoader::path($tpl, 'adm.template');
if (!$template) {
$tpl = SPLoader::translatePath($tpl, 'adm.template', false);
Sobi::Error($this->name(), SPLang::e('CANNOT_LOAD_TEMPLATE_AT', $tpl), SPC::ERROR, 500, __LINE__, __FILE__);
} else {
include $template;
}
}
if (count($this->_hidden)) {
$this->_hidden[SPFactory::mainframe()->token()] = 1;
$prefix = null;
if (!$this->get('_compatibility')) {
$prefix = 'SP_';
}
foreach ($this->_hidden as $name => $value) {
echo "\n<input type=\"hidden\" name=\"{$name}\" id=\"{$prefix}{$name}\" value=\"{$value}\"/>";
}
}
echo $action ? "\n</form>\n" : null;
echo '</div>';
Sobi::Trigger('AfterDisplay', $this->name());
}
示例10: dir
private function dir($file)
{
$file = explode('.', $file);
if (strstr($file[0], 'cms:')) {
$file[0] = str_replace('cms:', null, $file[0]);
$file = SPFactory::mainframe()->path(implode('.', $file));
$file = SPLoader::dirPath($file, 'root', true);
} else {
$file = SPLoader::dirPath('usr.templates.' . implode('.', $file), 'front', true);
}
if (!$file) {
$file = SPLoader::path('usr.templates.' . implode('.', $file), 'front', false);
Sobi::Error($this->name(), SPLang::e('FILE_NOT_FOUND', $file), SPC::WARNING, 404, __LINE__, __FILE__);
}
return $file;
}
示例11: store
private function store($key, $value, $msg = null)
{
// let's try to create kinda mutex here
$file = SPLoader::path('tmp.info', 'front', false, 'txt');
while (SPFs::exists($file)) {
usleep(100000);
}
$c = date(DATE_RFC822);
SPFs::write($file, $c);
$store = Sobi::GetUserData('requirements', array());
$store[$key] = array('value' => $value, 'message' => $msg);
Sobi::SetUserData('requirements', $store);
SPFs::delete($file);
// $msg = $msg ? $msg[ 'org' ][ 'label' ] : null;
// $file = SPLoader::path( 'tmp.info', 'front', false, 'txt' );
// $cont = null;
// if ( SPFs::exists( $file ) ) {
// $cont = SPFs::read( $file );
// }
// $txt = "{$cont}\n{$key}={$msg};{$value}";
// SPFs::write( $file, $txt );
}
示例12: display
/**
*
*/
public function display()
{
$tpl = SPLoader::path($this->_template . '_override', 'adm.template');
if (!$tpl) {
$tpl = SPLoader::path($this->_template, 'adm.template');
}
if (!$tpl) {
$tpl = SPLoader::translatePath($this->_template, 'adm.template', false);
Sobi::Error($this->name(), SPLang::e('TEMPLATE_DOES_NOT_EXISTS', $tpl), SPC::ERROR, 500, __LINE__, __FILE__);
exit;
}
Sobi::Trigger('Display', $this->name(), array(&$this));
$action = $this->key('action');
echo "\n<!-- SobiPro output -->\n";
echo '<div class="SobiPro" id="SobiPro">' . "\n";
if ($this->_legacy) {
echo SPFactory::AdmToolbar()->render();
echo $this->legacyMessages();
echo '<div class="row-fluid">' . "\n";
}
echo $action ? "\n<form action=\"{$action}\" method=\"post\" name=\"adminForm\" id=\"SPAdminForm\" enctype=\"multipart/form-data\" accept-charset=\"utf-8\" >\n" : null;
$prefix = null;
if (!$this->_legacy) {
$prefix = 'SP_';
}
include $tpl;
if (count($this->_hidden)) {
$this->_hidden[SPFactory::mainframe()->token()] = 1;
$this->_hidden['spsid'] = microtime(true) + Sobi::My('id') * mt_rand(5, 15) / mt_rand(5, 15);
foreach ($this->_hidden as $name => $value) {
echo "\n<input type=\"hidden\" name=\"{$name}\" id=\"{$prefix}{$name}\" value=\"{$value}\"/>";
}
}
echo $action ? "\n</form>\n" : null;
if ($this->_legacy) {
echo '</div>' . "\n";
}
echo '</div>' . "\n";
echo "\n<!-- SobiPro output end -->\n";
Sobi::Trigger('AfterDisplay', $this->name());
}
示例13: debOut
/**
* Creates debug output
* @param mixed $str - string/object/array to parse
* @param bool $hide - embed within a HTML comment
* @param bool $return - return or output directly
* @param bool $store - store within a file
* @return mixed
*/
public static function debOut($str = null, $hide = false, $return = false, $store = false)
{
$return = $store ? 1 : $return;
if (!$str) {
$str = 'Empty';
}
if ($hide) {
echo "\n\n<!-- Sobi Pro Debug: ";
} elseif (!$return) {
echo "<h4>";
}
if (is_object($str)) {
try {
$str = @var_export($str);
$str = trim(highlight_string($str, true));
} catch (Exception $x) {
$str = $x->getMessage();
}
} elseif (is_array($str)) {
$str = @print_r($str, true);
$str = highlight_string($str, true);
}
if (!$return) {
echo $str;
}
if ($hide) {
echo " -->\n\n";
} elseif (!$return) {
echo "</h4>";
}
if ($store) {
file_put_contents(SPLoader::path('var.log.debug', 'front', false, 'html'), '<br/>[' . date(DATE_RFC822) . "]<br/>{$str}<br/>", SPC::FS_APP);
} elseif ($return) {
return $str;
}
}
示例14: save
//.........这里部分代码省略.........
/* check if we have stored last edit in cache */
$tsId = SPRequest::string('editentry', null, false, 'cookie');
if (!$tsId) {
$tsId = SPRequest::cmd('ssid');
}
$request = $this->getCache($tsId);
$this->_model->init(SPRequest::sid($request));
$tplPackage = Sobi::Cfg('section.template', SPC::DEFAULT_TEMPLATE);
$this->tplCfg($tplPackage);
$customClass = null;
if (isset($this->_tCfg['general']['functions']) && $this->_tCfg['general']['functions']) {
$customClass = SPLoader::loadClass('/' . str_replace('.php', null, $this->_tCfg['general']['functions']), false, 'templates');
if (method_exists($customClass, 'BeforeStoreEntry')) {
$customClass::BeforeStoreEntry($this->_model, $this->store['post']);
SPFactory::registry()->set('requestcache_stored', $this->store);
SPFactory::registry()->set('requestcache', $this->store['post']);
}
}
$preState = array('approved' => $this->_model->get('approved'), 'state' => $this->_model->get('state'), 'new' => !$this->_model->get('id'));
SPFactory::registry()->set('object_previous_state', $preState);
$this->_model->getRequest($this->_type, $request);
Sobi::Trigger($this->name(), __FUNCTION__, array(&$this->_model));
if ($this->_model->get('id') && $this->_model->get('id') == SPRequest::sid()) {
$new = false;
if (Sobi::My('id') && Sobi::My('id') == $this->_model->get('owner')) {
$this->authorise('edit', 'own');
} else {
$this->authorise('edit', '*');
}
} else {
$this->authorise('add', 'own');
}
$this->_model->save($request);
/* if there is something pay */
$pCount = SPFactory::payment()->count($this->_model->get('id'));
if ($pCount && !Sobi::Can('entry.payment.free')) {
// $this->paymentView( $tsid );
if ($customClass && method_exists($customClass, 'BeforeStoreEntryPayment')) {
$customClass::BeforeStoreEntryPayment($this->_model->get('id'));
}
SPFactory::payment()->store($this->_model->get('id'));
}
/* delete cache files on after */
$file = str_replace('.', '-', $tsId);
if (SPLoader::dirPath('tmp.edit.' . $file)) {
SPFs::delete(SPLoader::dirPath('tmp.edit.' . $file));
} else {
SPFactory::cache()->deleteVar('request_cache_' . $tsId);
}
SPLoader::loadClass('env.cookie');
SPCookie::delete('editentry');
$sid = $this->_model->get('id');
$pid = SPRequest::int('pid') ? SPRequest::int('pid') : Sobi::Section();
if ($new) {
if ($this->_model->get('state') || Sobi::Can('entry.see_unpublished.own')) {
$msg = $this->_model->get('state') ? Sobi::Txt('EN.ENTRY_SAVED') : Sobi::Txt('EN.ENTRY_SAVED_NP');
$url = Sobi::Url(array('sid' => $sid, 'pid' => $pid));
} else {
// determine if there is a custom redirect
if (Sobi::Cfg('redirects.entry_save_enabled') && !($pCount && !Sobi::Can('entry.payment.free'))) {
$redirect = Sobi::Cfg('redirects.entry_save_url', null);
if (!preg_match('/http[s]?:\\/\\/.*/', $redirect) && $redirect != 'index.php') {
$redirect = Sobi::Url($redirect);
}
$this->response($redirect, Sobi::Txt(Sobi::Cfg('redirects.entry_save_msg', 'EN.ENTRY_SAVED_NP')), true, Sobi::Cfg('redirects.entry_save_msgtype', SPC::SUCCESS_MSG));
} else {
$msg = Sobi::Txt('EN.ENTRY_SAVED_NP');
$url = Sobi::Url(array('sid' => $pid));
}
}
} elseif ($this->_model->get('approved') || Sobi::Can('entry.see_unapproved.own')) {
$url = Sobi::Url(array('sid' => $sid, 'pid' => $pid));
$msg = $this->_model->get('approved') ? Sobi::Txt('EN.ENTRY_SAVED') : Sobi::Txt('EN.ENTRY_SAVED_NA');
} else {
if ($this->_model->get('approved')) {
$msg = Sobi::Txt('EN.ENTRY_SAVED');
} else {
$msg = Sobi::Txt('EN.ENTRY_SAVED_NA');
}
$url = Sobi::Url(array('sid' => $sid, 'pid' => $pid));
}
if ($pCount && !Sobi::Can('entry.payment.free')) {
$ident = md5(microtime() . $tsId . $sid . time());
$data = array('data' => SPFactory::payment()->summary($sid), 'ident' => $ident);
$url = Sobi::Url(array('sid' => $sid, 'task' => 'entry.payment'), false, false);
if (Sobi::Cfg('cache.l3_enabled', true)) {
SPFactory::cache()->addObj($data, 'payment', $sid, Sobi::Section(), true);
} else {
SPFs::write(SPLoader::path('tmp.edit.' . $ident . '.payment', 'front', false, 'var'), SPConfig::serialize($data));
$url = Sobi::Url(array('sid' => $sid, 'task' => 'entry.payment', 'tsid' => $ident), false, false);
}
SPLoader::loadClass('env.cookie');
SPCookie::set('payment_' . $sid, $ident, SPCookie::days(1));
}
if ($customClass && method_exists($customClass, 'AfterStoreEntry')) {
$customClass::AfterStoreEntry($this->_model);
}
$this->logChanges('save', SPRequest::string('history-note'));
$this->response($url, $msg, true, SPC::SUCCESS_MSG);
}
示例15: validate
protected function validate($field)
{
$type = SPRequest::cmd('field_fieldType');
$definition = SPLoader::path('field.' . $type, 'adm', true, 'xml');
if ($definition) {
$xdef = new DOMXPath(DOMdocument::load($definition));
$required = $xdef->query('//field[@required="true"]');
if ($required->length) {
for ($i = 0; $i < $required->length; $i++) {
$node = $required->item($i);
$name = $node->attributes->getNamedItem('name')->nodeValue;
if (!SPRequest::raw(str_replace('.', '_', $name))) {
$this->response(Sobi::Url(array('task' => 'field.edit', 'fid' => $field->get('fid'), 'sid' => SPRequest::sid())), Sobi::Txt('PLEASE_FILL_IN_ALL_REQUIRED_FIELDS'), false, 'error', array('required' => $name));
}
}
}
}
}