本文整理汇总了PHP中file::o方法的典型用法代码示例。如果您正苦于以下问题:PHP file::o方法的具体用法?PHP file::o怎么用?PHP file::o使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类file
的用法示例。
在下文中一共展示了file::o方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sitemap
/**
* Генератор sitemap.xml
* @return null
*/
public function sitemap()
{
$file = main_page::sitemap;
$r = db::o()->query('SELECT * FROM content');
tpl::o()->assign('content', db::o()->fetch2array($r));
$c = tpl::o()->fetch('content/sitemap.xtpl');
file::o()->write_file($c, $file);
}
示例2: construct
/**
* Функция создания Человекопонятного URL, исходя из заданных параметров,
* по предустановленным правилам
* @param string $module имя модуля
* @param array $params массив параметров, например:
* array('id' => 1, 'name' => 'CTRev', 'cat' => 'demo')
* ключ slashes экранирует результат для JavaScript, иначе & заменяется на &
* @param bool $page является ли указанный модуль ссылкой на документ?
* @param bool $no_end нужно ли в конец добавлять .html/index.html?
* @param bool $nobaseurl не добавлять в начало $baseurl
* @return string ЧПУ
*/
public function construct($module, $params = array(), $page = false, $no_end = false, $nobaseurl = false)
{
$baseurl = globals::g('baseurl');
$burl = true;
$assign = false;
if (is_array($module)) {
$module_t = $module['module'];
if ($module['no_end']) {
$no_end = $module['no_end'];
}
if ($module['assign']) {
$assign = (string) $module['assign'];
}
if (!$module_t && $module['page']) {
$module = $module['page'];
$page = true;
} elseif (!$module_t) {
return;
} else {
unset($module['module']);
$params = $module;
$module = $module_t;
}
} elseif ($nobaseurl) {
$burl = false;
}
if (!is_array($params)) {
$params = array();
}
if ($params["_filetype"]) {
$filetype = '.' . file::o()->get_filetype($params["_filetype"]);
} else {
$filetype = ".html";
}
$url = $burl ? $baseurl : "";
if (config::o()->v('furl')) {
$url .= $this->module_name($module) . ($page ? '' : "/");
$function = $module . '_furl_rules';
} else {
$url .= 'index.php?module=' . ($this->rmodules[$module] ? $this->rmodules[$module] : $module);
$function = $module . '_nfurl_rules';
}
$slashes = $params['slashes'];
$noencode = $params['noencode'];
$b = $this->is_callable($function);
if ($b) {
$params = $this->resort($module, $params);
}
$postfix = "";
$surl = '';
$ourl = $url;
if ($params && !$page) {
foreach ($params as $param => $value) {
if ($this->postfixes[$module][$param]) {
$postfix .= $this->postfixes[$module][$param] . $value;
}
if ($b) {
$r = $this->call_method($function, array($param, $value, !$slashes && !$noencode));
} elseif (!config::o()->v('furl')) {
$r = $param . "=" . $value;
} else {
$r = $param . "-" . $value . "/";
}
if (!config::o()->v('furl') && $r) {
$surl .= '&' . $r;
$r = ($slashes || $noencode ? '&' : '&') . $r;
}
$url .= $r;
}
}
if (!$surl) {
$surl = $url;
} else {
$surl = $ourl . $surl;
}
$add = '';
if (config::o()->v('furl')) {
if (!$no_end && !$page && (!$params || !$b || preg_match('/\\/$/siu', $url))) {
$add .= "index";
}
if (!$no_end) {
$add .= $filetype;
}
}
$add .= $postfix;
$url = $url . $add;
$surl = $surl . $add;
$this->forlocation = array($surl, $url);
//.........这里部分代码省略.........
示例3: show
/**
* Отображение списка включенных плагинов
* @return null
*/
protected function show()
{
$r = db::o()->query('SELECT file FROM plugins');
tpl::o()->assign('res', db::o()->fetch2array($r, null, array('file')));
$themes = file::o()->open_folder(THEMES_PATH, true);
$n = !($y = true);
foreach ($themes as $theme) {
$r = file::o()->is_writable(THEMES_PATH . '/' . $theme . '/' . TEMPLATES_PATH, true, true);
$y = $y || $r === true || $r === 2;
$n = $n || !$r || $r === 1;
}
tpl::o()->assign('trewritable', $y + !$n);
tpl::o()->register_modifier('pcompatibility', array($this, 'check'));
tpl::o()->register_modifier('pvar', array(plugins::o()->manager, 'pvar'));
tpl::o()->register_modifier('psettings', array(plugins::o()->manager, 'parsed_settings'));
tpl::o()->register_modifier('plugin_selector', array($this, 'file_selector'));
tpl::o()->display('admin/plugins/index.tpl');
}
示例4: download
/**
* Функция скачивания файла, защищенного .htaccess
* @param string $filepath путь к файлу
* @param string $filename имя файла
* @return bool true, если всё прошло успешно, false - в случае неудачи
* @throws EngineException
*/
public function download($filepath, $filename = "")
{
if (!$filename) {
preg_match('/\\/(.*)$/siu', $filepath, $matches);
$filename = $matches[2];
}
if (!file_exists($filepath)) {
throw new EngineException('file_not_exists');
}
$content = @file_get_contents($filepath);
$t = file::o()->get_content_type($filepath);
$this->download_headers($content, $filename, $t);
}
示例5: check_steps
/**
* Проверка стадий
* @param array $data массив данных
* @return null
*/
protected function check_steps($data)
{
$error = array();
db::o()->no_reset()->no_error();
switch (INSTALL_PAGE) {
case "license":
case "finish":
break;
case "config":
db::o()->connect();
$this->config($data, $error);
break;
case "admin":
db::o()->connect();
$this->create_admin($data, $error);
break;
case "import":
db::o()->connect();
$this->import_db($error);
break;
case "database":
if (!$this->write_db($data)) {
$error[] = lang::o()->v('install_error_cant_write_dbconn');
}
db::o()->connect();
case "check":
foreach ($this->chmod as $f) {
$r = file::o()->is_writable($f, true, true, true);
if ($r !== 2 && $r !== true) {
$error[] = sprintf(lang::o()->v('install_error_not_rewritable'), $f);
}
}
$ufs = ini_get('upload_max_filesize');
$pms = ini_get('post_max_size');
$s = $this->check_filesize($ufs, $pms) ? $pms : $ufs;
if (!$this->check_filesize($s, self::need_filesize . 'M')) {
$error[] = lang::o()->v('install_error_upload_filesize');
}
if (!version_compare(PHP_VERSION, '5.0', '>=')) {
$error[] = lang::o()->v('install_error_php_version');
}
if (!in_array('mbstring', get_loaded_extensions())) {
$error[] = lang::o()->v('install_error_mbstring');
}
break;
}
if ($error) {
die(implode('<br>', $error));
}
}
示例6: copy
/**
* Клонирование темы
* @param string $name имя темы
* @param string $newname новое имя темы
* @return null
* @throws EngineException
*/
public function copy($name, $newname)
{
lang::o()->get('admin/styles');
if (!validword($newname)) {
throw new EngineException('styles_invalid_new_name');
}
file::o()->copy_folder(THEMES_PATH . '/' . $name, THEMES_PATH . '/' . $newname);
log_add('copied_style', 'admin', array($newname, $name));
}
示例7: clear_aliases
/**
* Очистка алиасов классов
* @return null
*/
function clear_aliases()
{
$content = '<?php
// Autogenerated file. DO NOT EDIT
?>';
file::o()->write_file($content, CLASS_ALIASES);
}
示例8: copy
/**
* Клонирование языкового пакета
* @param string $name имя языка
* @param string $newname новое имя языка
* @return null
* @throws EngineException
*/
public function copy($name, $newname)
{
lang::o()->get('admin/languages');
if (!validword($newname)) {
throw new EngineException('languages_invalid_new_name');
}
file::o()->copy_folder(LANGUAGES_PATH . '/' . $name, LANGUAGES_PATH . '/' . $newname);
log_add('copied_language', 'admin', array($newname, $name));
}
示例9: array
tpl::o()->register_modifier('gval', 'smarty_group_value');
tpl::o()->register_modifier('null_text', array($input, 'set_null_text'));
tpl::o()->register_modifier('cut', array($display, "cut_text"));
tpl::o()->register_modifier('he', array($display, "html_encode"));
tpl::o()->register_modifier("ft", array($bbcodes, "format_text"));
tpl::o()->register_modifier("ge", array($display, "estimated_time"));
tpl::o()->register_modifier("ul", 'smarty_user_link');
tpl::o()->register_modifier('gc', array($display, "group_color"));
tpl::o()->register_modifier('gcl', 'smarty_group_color_link');
tpl::o()->register_modifier("ua", array($display, "useravatar"));
tpl::o()->register_modifier("pf", "smarty_print_format");
tpl::o()->register_modifier('cs', array($display, "convert_size"));
tpl::o()->register_modifier("zodiac_sign", array($display, 'zodiac_image'));
tpl::o()->register_modifier("decus", array(users::o(), 'decode_settings'));
tpl::o()->register_modifier("filetype", array(file::o(), 'get_filetype'));
tpl::o()->register_modifier("is_writable", array(file::o(), 'is_writable'));
tpl::o()->register_modifier('rnl', 'replace_newline');
/**
* @note Создание тега для atom:id(для торрентов)(atom_tag)
* params:
* int time время постинга
* string title заголовок
* int id ID
*/
tpl::o()->register_function("atom_tag", "smarty_make_atom_tag");
/*
tpl::o()->register_modifier("parse_array", array(
$display,
'parse_smarty_array')); */
/**
* @note Вывод статистики запросов(query_stat)
示例10: torrent_file
/**
* Проверка и загрузка торрент-файла
* @param string $id ID торрент-файла
* @param string $filevar файловая переменная($_FILES) для торрента
* @param string $filelist ссылка на сериализованный список файлов в торренте
* @param int $filesize ссылка на размер файла
* @param string $announce_list ссылка на аннонсеры для мультитрекера
* @return string инфохеш торрент файла
*/
public function torrent_file($id, $filevar, &$filelist = null, &$filesize = null, &$announce_list = null)
{
n("uploader")->check($filevar, $tmp = 'torrents');
$t = $filevar["tmp_name"];
list($dict, $idict) = $this->check_dict($t, $filelist, $filesize, $announce_list);
file::o()->write_file($this->benc($dict), config::o()->v('torrents_folder') . '/' . self::torrent_prefix . $id . ".torrent");
return sha1($this->benc($idict));
}
示例11: search_infiles
/**
* Поиск/замена в файлах
* @param string|array $dir путь к дирректории или массив файлов
* @param string $what что ищем? (рег. выражение без делимиттеров)
* @param bool $regexp регулярное выражение?
* @param int $where где ищем?(для массива, 0 - в значениях, 1 - в ключах, 2 - и там, и там)
* если указать -1, то не будет проверяться, слово ли ключ, а поиск будет по значению
* @param callback $callback callback функция для получения контента файла
* единственный параметр функции - путь к файлу
* @param string $was пред. путь(для рекурсии)
* @return array массив файлов(ключи) и подсвеченных результатов(значения)
*/
public function search_infiles($dir, $what, $regexp = false, $where = null, $callback = null, $was = '')
{
if (!$dir || !$what) {
return;
}
if (!is_array($dir) && is_dir(ROOT . $dir)) {
$files = file::o()->open_folder($dir);
} else {
$dir = $files = (array) $dir;
}
$r = array();
if (!$regexp) {
$what = mpc($what);
$regexp = true;
} elseif (!$was) {
$what = str_replace('/', '\\/', $what);
}
$owhat = $what;
if (is_null($this->infiles_replace)) {
$what = display::o()->html_encode($what);
}
$what = '/(' . $what . ')/siu';
$where = (int) $where;
foreach ($files as $f) {
if (!is_array($dir)) {
$nf = $dir . '/' . $f;
$wf = ($was ? $was . '/' : '') . $f;
} else {
$wf = $nf = $f;
}
if (!$f) {
return;
}
$fr = ROOT . $nf;
if (is_dir($fr)) {
if (!is_array($dir)) {
$r = array_merge($r, $this->search_infiles($nf, $owhat, $regexp, $where, $callback, $wf));
}
continue;
}
if ($callback) {
$c = call_user_func($callback, $nf);
} else {
$c = file_get_contents($fr);
}
if (!$c) {
continue;
}
if (!is_array($c)) {
$this->search_infiles_na($r, $fr, $what, $nf, $wf);
continue;
}
if (!is_null($this->infiles_replace) && !$this->infiles_replace_cb) {
continue;
}
$this->search_infiles_a($r, $c, $what, $where, $nf, $wf);
}
if (!$was) {
$this->replace_infiles(null, null);
}
return $r;
}
示例12: clear_tpl
/**
* Очистка от скомпилированных шаблонов
* @return bool true, если успешно очищено
*/
public function clear_tpl()
{
return @file::o()->unlink_folder('include/cache/' . TEMPLATES_PATH, true, '.gitignore');
}
示例13: save
/**
* Сохранение смайлов
* @param array $data массив данных
* @return null
* @throws EngineException
*/
public function save($data)
{
$admin_file = globals::g('admin_file');
$cols = array('id', 'name', 'code', 'image', 'sb' => 'show_bbeditor');
extract(rex($data, $cols));
$id = (int) $id;
$name = (array) $name;
$code = (array) $code;
$image = (array) $image;
$sb = (array) $sb;
$c = count($name);
if ($id && $c != 1) {
throw new EngineException('smilies_empty_data');
}
if (!$name || $c != count($code) || $c != count($image)) {
throw new EngineException('smilies_empty_data');
}
foreach ($name as $i => $iname) {
$icode = trim($code[$i]);
$iname = trim($iname);
$iimage = trim($image[$i]);
$isb = (bool) $sb[$i];
if (!$icode || !$iname || !$iimage) {
continue;
}
if (!file_exists(ROOT . config::o()->v('smilies_folder') . '/' . $iimage) || !in_array(file::o()->get_filetype($iimage), $this->allowed_types)) {
continue;
}
if (db::o()->p($icode, $id)->count_rows('smilies', 'code = ?' . ($id ? ' AND id<>?' : ''))) {
continue;
}
$update = array('code' => $icode, 'name' => $iname, 'image' => $iimage, 'show_bbeditor' => $isb);
try {
plugins::o()->pass_data(array("update" => &$update, "id" => $id), true)->run_hook('admin_smilies_save');
} catch (PReturn $e) {
if (!$e->r()) {
continue;
}
return $e->r();
}
if (!$id) {
db::o()->insert($update, 'smilies', true);
} else {
db::o()->p($id)->update($update, 'smilies', 'WHERE id=? LIMIT 1');
}
}
cache::o()->remove('smilies');
if (!$id) {
db::o()->save_last_table();
furl::o()->location($admin_file);
} else {
$this->show($id);
return;
}
}
示例14: revert_replace
/**
* Обратная замена
* @param string $plugin_name имя плагина
* @return bool статус
*/
public function revert_replace($plugin_name)
{
$b = ROOT . PLUGINS_PATH . '/' . PLUGINS_REPLACED . '/repl.' . $plugin_name . '.back';
if (!file_exists($b)) {
return true;
}
$replaced = unserialize(file_get_contents($b));
if (!$replaced) {
return true;
}
$r = 0;
$i = 0;
foreach ($replaced as $f => $arr) {
if (!$arr) {
continue;
}
if (!file_exists(ROOT . $f)) {
continue;
}
$contents = file_get_contents(ROOT . $f);
foreach ((array) $arr as $cur) {
if (!$cur) {
continue;
}
foreach ((array) $cur as $per) {
list($what, $with) = $per;
$c = 1;
// reference
$contents = str_replace($with, $what, $contents, $c);
}
}
$r += file::o()->write_file($contents, $f);
$i++;
}
$r += @unlink($b);
$i++;
return $r == $i;
}
示例15: select_folder
/**
* Выборка дирректорий
* Параметры: current, null
* @param string $name имя селектора
* @param string $folder дирректория
* @param bool $onlydir искать только дирректории?
* @param string $regexp рег. выражение для выборки файлов(с делимиттерами)
* @param int $match значение из рег. выражения
* @return string HTML код селектора
*/
public function select_folder($name = "theme", $folder = THEMES_PATH, $onlydir = false, $regexp = '', $match = '')
{
if (!is_array($name)) {
$this->join_params($name, array('folder' => $folder, 'onlydir' => $onlydir, 'regexp' => $regexp, 'match' => $match));
}
$current = $name["current"];
$folder = $name["folder"];
$null = $name["null"];
if (!is_null($name["onlydir"])) {
$onlydir = $name["onlydir"];
}
$regexp = $name["regexp"];
$match = $name["match"];
$name = $name["name"];
if (!$name) {
$name = "lang";
}
if (!$folder) {
$folder = THEMES_PATH;
}
if ($folder == LANGUAGES_PATH || $folder == THEMES_PATH) {
$onlydir = true;
}
$res = file::o()->open_folder($folder, $onlydir);
$count = count($res);
$options = "";
for ($i = 0; $i < $count; $i++) {
$cur = $res[$i];
$value = $cur;
$matches = array();
if ($folder == LANGUAGES_PATH && lang::o()->visset("lang_" . $cur)) {
$value = lang::o()->v("lang_" . $cur);
}
if ($folder == THEMES_PATH && strtolower($value) == strtolower(ADMIN_THEME)) {
continue;
}
if ($regexp && !preg_match($regexp, $cur, $matches)) {
continue;
}
if ($matches && $match) {
$value = $cur = $matches[$match];
}
$options .= "<option value='" . $cur . "'" . ($cur == $current ? " selected='selected'" : "") . ">" . $value . "</option>";
}
if (!$options) {
return;
}
if ($null) {
$options = $this->get_null_text() . $options;
}
$html = "<select name=\"" . $name . "\">" . $options . "</select>";
return $html;
}