本文整理汇总了PHP中Horde_Util::realPath方法的典型用法代码示例。如果您正苦于以下问题:PHP Horde_Util::realPath方法的具体用法?PHP Horde_Util::realPath怎么用?PHP Horde_Util::realPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Horde_Util
的用法示例。
在下文中一共展示了Horde_Util::realPath方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _uploadFTP
/**
* Does an FTP upload to save the configuration.
*/
function _uploadFTP($params)
{
global $registry, $notification;
$params['hostspec'] = 'localhost';
try {
$vfs = Horde_Vfs::factory('ftp', $params);
} catch (Horde_Vfs_Exception $e) {
$notification->push(sprintf(_("Could not connect to server \"%s\" using FTP: %s"), $params['hostspec'], $e->getMessage()), 'horde.error');
return false;
}
/* Loop through the config and write to FTP. */
$no_errors = true;
foreach ($GLOBALS['session']->get('horde', 'config/') as $app => $config) {
$path = $registry->get('fileroot', $app) . '/config';
/* Try to back up the current conf.php. */
if ($vfs->exists($path, 'conf.php')) {
try {
$vfs->rename($path, 'conf.php', $path, '/conf.bak.php');
$notification->push(_("Successfully saved backup configuration."), 'horde.success');
} catch (Horde_Vfs_Exception $e) {
$notification->push(sprintf(_("Could not save a backup configuation: %s"), $e->getMessage()), 'horde.error');
}
}
try {
$vfs->writeData($path, 'conf.php', $config);
$notification->push(sprintf(_("Successfully wrote %s"), Horde_Util::realPath($path . '/conf.php')), 'horde.success');
$GLOBALS['session']->remove('horde', 'config/' . $app);
} catch (Horde_Vfs_Exception $e) {
$no_errors = false;
$notification->push(sprintf(_("Could not write configuration for \"%s\": %s"), $app, $e->getMessage()), 'horde.error');
}
}
$registry->rebuild();
return $no_errors;
}
示例2: readlink
if (is_link($configFile)) {
$configFile = readlink($configFile);
}
if ($vars->submitbutton == _("Revert Configuration")) {
if (@copy($path . '/conf.bak.php', $configFile)) {
$notification->push(_("Successfully reverted configuration. Reload to see changes."), 'horde.success');
@unlink($path . '/conf.bak.php');
} else {
$notification->push(_("Could not revert configuration."), 'horde.error');
}
} elseif ($form->validate($vars)) {
$config = new Horde_Config($app);
if ($config->writePHPConfig($vars, $php)) {
Horde::url('admin/config/index.php', true)->redirect();
} else {
$notification->push(sprintf(_("Could not save the configuration file %s. You can either use one of the options to save the code back on %s or copy manually the code below to %s."), Horde_Util::realPath($configFile), Horde::link(Horde::url('admin/config/index.php') . '#update', _("Configuration")) . _("Configuration") . '</a>', Horde_Util::realPath($configFile)), 'horde.warning', array('content.raw', 'sticky'));
}
} elseif ($form->isSubmitted()) {
$notification->push(_("There was an error in the configuration form. Perhaps you left out a required field."), 'horde.error');
}
$view = new Horde_View(array('templatePath' => HORDE_TEMPLATES . '/admin/config'));
$view->addHelper('Text');
$view->php = $php;
/* Create the link for the diff popup only if stored in session. */
if ($session->exists('horde', 'config/' . $app)) {
$url = Horde::url('admin/config/diff.php', true)->add('app', $app);
$view->diff_popup = Horde::link('#', '', '', '', Horde::popupJs($url, array('height' => 480, 'width' => 640, 'urlencode' => true)) . 'return false;') . _("show differences") . '</a>';
}
Horde::startBuffer();
require HORDE_TEMPLATES . '/admin/menu.inc';
$menu_output = Horde::endBuffer();
示例3: sprintf
$data .= '\')) {' . "\n";
$data .= ' echo \'' . sprintf('Saved %s configuration.', $app) . '\' . "\\n";' . "\n";
$data .= '} else {' . "\n";
$data .= ' echo \'' . sprintf('Could NOT save %s configuration.', $app) . '\' . "\\n";' . "\n";
$data .= ' exit;' . "\n";
$data .= '}' . "\n\n";
}
}
if ($vars->save != 'tmp') {
/* Output script to browser for download. */
$browser->downloadHeaders($filename, 'text/plain', false, strlen($data));
echo $data;
exit;
}
$tmp_dir = Horde::getTempDir();
/* Add self-destruct code. */
$data .= 'echo \'Self-destructing...\' . "\\n";' . "\n";
$data .= 'if (@unlink(__FILE__)) {' . "\n";
$data .= ' echo \'Upgrade script deleted.\' . "\\n";' . "\n";
$data .= '} else {' . "\n";
$data .= ' echo \'WARNING!!! REMOVE SCRIPT MANUALLY FROM ' . $tmp_dir . '\' . "\\n";' . "\n";
$data .= '}' . "\n";
/* The script should be saved to server's temporary directory. */
$path = Horde_Util::realPath($tmp_dir . '/' . $filename);
if (file_put_contents($tmp_dir . '/' . $filename, $data)) {
chmod($tmp_dir . '/' . $filename, 0777);
$notification->push(sprintf(_("Saved configuration upgrade script to: \"%s\"."), $path), 'horde.success', array('sticky'));
} else {
$notification->push(sprintf(_("Could not save configuration upgrade script to: \"%s\"."), $path), 'horde.error');
}
Horde::url('admin/config/index.php', true)->redirect();
示例4: writePHPConfig
/**
* Generates and writes the content of the application's configuration
* file.
*
* @param Horde_Variables $formvars The processed configuration form
* data.
* @param string $php The content of the generated
* configuration file.
*
* @return boolean True if the configuration file could be written
* immediately to the file system.
*/
public function writePHPConfig($formvars, &$php = null)
{
$php = $this->generatePHPConfig($formvars);
$path = $GLOBALS['registry']->get('fileroot', $this->_app) . '/config';
$configFile = $this->configFile();
if (file_exists($configFile)) {
if (@copy($configFile, $path . '/conf.bak.php')) {
$GLOBALS['notification']->push(sprintf(Horde_Core_Translation::t("Successfully saved the backup configuration file %s."), Horde_Util::realPath($path . '/conf.bak.php')), 'horde.success');
} else {
$GLOBALS['notification']->push(sprintf(Horde_Core_Translation::t("Could not save the backup configuration file %s."), Horde_Util::realPath($path . '/conf.bak.php')), 'horde.warning');
}
}
if ($fp = @fopen($configFile, 'w')) {
/* Can write, so output to file. */
fwrite($fp, $php);
fclose($fp);
$GLOBALS['registry']->rebuild();
$GLOBALS['notification']->push(sprintf(Horde_Core_Translation::t("Successfully wrote %s"), Horde_Util::realPath($configFile)), 'horde.success');
return true;
}
/* Cannot write. Save to session. */
$GLOBALS['session']->set('horde', 'config/' . $this->_app, $php);
return false;
}
示例5: _renderVarInput_selectFiles
function _renderVarInput_selectFiles($form, $var, $vars)
{
/* Needed for gollem js calls */
$html = sprintf('<input type="hidden" id="%1$s" name="%1$s" value="%2$s" />', 'selectlist_selectid', $var->type->selectid) . sprintf('<input type="hidden" id="%1$s" name="%1$s" />', 'actionID');
/* Form field. */
$html .= sprintf('<input type="hidden" id="%1$s" name="%1$s" value="%2$s" />', $var->getVarName(), $var->type->selectid);
/* Open window link. */
$param = array($var->type->link_text, $var->type->link_style, $form->getName(), $var->type->icon, $var->type->selectid);
$html .= "<p>\n" . $GLOBALS['registry']->call('files/selectlistLink', $param) . "</p>\n";
if ($var->type->selectid) {
$param = array($var->type->selectid);
$files = $GLOBALS['registry']->call('files/selectlistResults', $param);
if ($files) {
$html .= '<ol>';
foreach ($files as $id => $file) {
$dir = key($file);
$filename = current($file);
if ($GLOBALS['registry']->hasMethod('files/getViewLink')) {
$filename = basename($filename);
$url = $GLOBALS['registry']->call('files/getViewLink', array($dir, $filename));
$filename = Horde::link($url, Horde_Model_Translation::t("Preview"), null, 'form_file_view') . htmlspecialchars(Horde_Util::realPath($dir . '/' . $filename), ENT_QUOTES, $this->_charset) . '</a>';
} else {
if (!empty($dir) && $dir != '.') {
$filename = $dir . '/' . $filename;
}
$filename = htmlspecialchars($filename, ENT_QUOTES, $this->_charset);
}
$html .= '<li>' . $filename . "</li>\n";
}
$html .= '</ol>';
}
}
return $html;
}
示例6: getDisplayPath
/**
* Generate the display path (the path with any root information stripped
* out).
*
* @param string $path The path to display.
*
* @return string The display path.
*/
public static function getDisplayPath($path)
{
$path = Horde_Util::realPath($path);
if (self::$backend['root'] != '/' && strpos($path, self::$backend['root']) === 0) {
$path = substr($path, Horde_String::length(self::$backend['root']));
}
return $path;
}
示例7: writeAllConfigs
/**
* Creates default configuration files for all installed applications.
*
* @throws Horde_Exception
*/
public function writeAllConfigs()
{
foreach ($GLOBALS['registry']->listAllApps() as $app) {
if ($app == 'horde' || !file_exists($GLOBALS['registry']->get('fileroot', $app) . '/config/conf.xml')) {
continue;
}
$config = new Horde_Config($app);
$configFile = $config->configFile();
if (!$config->writePHPConfig(new Horde_Variables())) {
throw new Horde_Exception('Cannot write configuration file ' . Horde_Util::realPath($configFile));
}
}
}
示例8: authenticate
/**
* Authenticate to the backend.
*
* @param array $credentials An array of login credentials. If empty,
* attempts to login to the cached session.
* <pre>
* 'password' - (string) The user password.
* 'backend' - (string) The backend key to use (from backends.php).
* 'userId' - (string) The username.
* </pre>
*
* @return mixed If authentication was successful, and no session
* exists, an array of data to add to the session.
* Otherwise returns false.
* @throws Horde_Auth_Exception
*/
public static function authenticate($credentials = array())
{
$result = false;
// Do 'horde' authentication.
$gollem_app = $GLOBALS['registry']->getApiInstance('gollem', 'application');
if (!empty($gollem_app->initParams['authentication']) && $gollem_app->initParams['authentication'] == 'horde') {
if ($registry->getAuth()) {
return $result;
}
throw new Horde_Auth_Exception('', Horde_Auth::REASON_FAILED);
}
// Load backend.
if (!isset($credentials['backend_key'])) {
$credentials['backend_key'] = self::getPreferredBackend();
}
$backend = self::getBackend($credentials['backend_key']);
// Check for hordeauth.
if ((!isset($credentials['userId']) || !isset($credentials['password'])) && !$GLOBALS['session']->exists('gollem', 'backend_key') && self::canAutoLogin($credentials['backend_key'])) {
if (!empty($backend['hordeauth'])) {
$credentials['userId'] = self::getAutologinID($credentials['backend_key']);
$credentials['password'] = $GLOBALS['registry']->getAuthCredential('password');
}
}
// Check for hardcoded backend credentials.
if (!isset($credentials['userId']) && !empty($backend['params']['username'])) {
$credentials['userId'] = $backend['params']['username'];
}
if (!isset($credentials['password']) && !empty($backend['params']['password'])) {
$credentials['password'] = $backend['params']['password'];
}
if (!isset($credentials['userId']) || !isset($credentials['password'])) {
throw new Horde_Auth_Exception('', Horde_Auth::REASON_BADLOGIN);
}
try {
$vfs = $GLOBALS['injector']->getInstance('Gollem_Factory_Vfs')->create($credentials['backend_key']);
$params = array('username' => $credentials['userId'], 'password' => $credentials['password']);
foreach (array_keys($backend['loginparams']) as $param) {
if (isset($credentials[$param])) {
$backend['params'][$param] = $params[$param] = $credentials[$param];
}
}
$vfs->setParams($params);
$vfs->checkCredentials();
} catch (Horde_Exception $e) {
throw new Horde_Auth_Exception($e->getMessage(), Horde_Auth::REASON_MESSAGE);
}
// Set current backend.
Gollem::$backend =& $backend;
// Mark backend as authenticated.
$backend['auth'] = true;
// Save username in backend configuration.
if (!isset($backend['params']['username'])) {
$backend['params']['username'] = $credentials['userId'];
}
if (!isset($backend['params']['password'])) {
$backend['params']['password'] = $credentials['password'];
}
// Make sure we have a 'root' parameter.
if (empty($backend['root'])) {
$backend['root'] = '/';
}
$backend['root'] = Horde_Util::realPath($backend['root']);
// Make sure we have a 'home' parameter.
if (empty($backend['home'])) {
$backend['home'] = empty($backend['params']['home']) ? $vfs->getCurrentDirectory() : $backend['params']['home'];
if (empty($backend['home'])) {
$backend['home'] = $backend['root'];
}
}
// Make sure the home parameter lives under root if it is a relative
// directory.
if (strpos($backend['home'], '/') !== 0) {
$backend['home'] = $backend['root'] . '/' . $backend['home'];
}
$backend['home'] = Horde_Util::realPath($backend['home']);
$backend['dir'] = $backend['home'];
// Verify that home is below root.
if (!Gollem::verifyDir($backend['home'])) {
throw new Horde_Auth_Exception('Backend Configuration Error: Home directory not below root.', Horde_Auth::REASON_MESSAGE);
}
// Create the home directory if it doesn't already exist.
if ($backend['home'] != '/' && !empty($backend['createhome'])) {
$pos = strrpos($backend['home'], '/');
$cr_dir = substr($backend['home'], 0, $pos);
//.........这里部分代码省略.........
示例9: _renderVarInput_selectFiles
protected function _renderVarInput_selectFiles($form, &$var, &$vars)
{
/* Needed for gollem js calls */
$html = sprintf('<input type="hidden" name="%s" id="%s" value="%s" />', 'selectlist_selectid', 'selectlist_selectid', $var->type->getProperty('selectid')) . sprintf('<input type="hidden" name="%s" id="%s" />', 'actionID', 'actionID') . sprintf('<input type="hidden" name="%s" id="%s" value="%s" />', htmlspecialchars($var->getVarName()), $this->_genID($var->getVarName(), false), $var->type->getProperty('selectid'));
/* Open window link. */
$param = array($var->type->getProperty('link_text'), $var->type->getProperty('link_style'), $form->getName(), $var->type->getProperty('icon'), $var->type->getProperty('selectid'));
$html .= $GLOBALS['registry']->call('files/selectlistLink', $param) . "<br />\n";
if ($var->type->getProperty('selectid')) {
$param = array($var->type->getProperty('selectid'));
$files = $GLOBALS['registry']->call('files/selectlistResults', $param);
if ($files) {
$html .= '<ol>';
foreach ($files as $id => $file) {
$dir = key($file);
$filename = current($file);
if ($GLOBALS['registry']->hasMethod('files/getViewLink')) {
$filename = basename($filename);
$url = $GLOBALS['registry']->call('files/getViewLink', array($dir, $filename));
$filename = Horde::link($url, Horde_Core_Translation::t("Preview"), null, 'form_file_view') . htmlspecialchars(Horde_Util::realPath($dir . '/' . $filename)) . '</a>';
} else {
if (!empty($dir) && $dir != '.') {
$filename = $dir . '/' . $filename;
}
$filename = htmlspecialchars($filename);
}
$html .= '<li>' . $filename . "</li>\n";
}
$html .= '</ol>';
}
}
return $html;
}