예제 #1
0
 protected function login()
 {
     if (Router::$IS_AJAX || Router::$IS_IFRAME) {
         $this->renderError('请先登录!');
     }
     $backUrl = Url::getCurrentUrl(array('back-url' => null));
     $url = Url::make('//uc.hqoj.net/login/', array('back-url' => $backUrl));
     Url::redirect($url);
 }
예제 #2
0
 public function __construct($rows, $max = 10)
 {
     $this->_records = $rows;
     $this->_numb_of_records = count($this->_records);
     $this->_max_pp = $max;
     $this->_url = Url::getCurrentUrl(self::$_key);
     $current = Url::getParam(self::$_key);
     $this->_current = !empty($current) ? $current : 1;
     $this->numberOfPages();
     $this->getOffset();
 }
예제 #3
0
 /**
  * 验证权限
  * @param  uid 用户权限id
  * @param model 模式 1=>url模式,2=>权限id模式,3=>权限名称模式
  * @author Colin <*****@*****.**>
  */
 public function check($uid = null, $model = 1)
 {
     $auths = $this->getUserAuths($uid);
     $current = Url::getCurrentUrl();
     list($controller, $method) = $current;
     foreach ($auths as $key => $value) {
         $url = explode('/', $value['url']);
         list($auth_controller, $auth_method) = $url;
         //是否验证其他
         if ($this->auth_other === false) {
             $auth = D('Auth');
             if (!($find = $auth->where('url', implode('/', $current))->find())) {
                 return true;
             }
         }
         if ($auth_controller == $controller && $auth_method == $method) {
             return true;
         }
     }
     return false;
 }
예제 #4
0
 private static function insert($tag, $level, $msg)
 {
     // 是否需要Logger
     if (!GlobalConfig::$LOGGER_ENABLE) {
         return;
     }
     // 临时关闭Logger
     $tmpEnable = GlobalConfig::$LOGGER_ENABLE;
     GlobalConfig::$LOGGER_ENABLE = false;
     // 校验tag
     $tags = LoggerKeys::$allTags;
     if (!in_array($tag, $tags)) {
         throw new LibraryException("TAG:{$tag} 需要在LoggerKeys中定义!");
     }
     // 获取错误信息
     if (is_subclass_of($msg, 'Exception')) {
         $traceList = $msg->getTrace();
         $message = $msg->getMessage();
         $traceInfo = $traceList[0];
         $loc = $traceInfo['file'] . ':' . $traceInfo['line'];
     } else {
         $traceList = debug_backtrace();
         $message = $msg;
         $traceInfo = $traceList[1];
         $loc = $traceInfo['file'] . ':' . $traceInfo['line'];
     }
     $now = time();
     $data = array('create_time' => $now, 'update_time' => $now, 'tag' => $tag, 'level' => $level, 'client_ip' => Http::getClientIp(), 'client_port' => Http::getClientPort(), 'server_ip' => Http::getServerIp(), 'server_port' => Http::getServerPort(), 'url' => Url::getCurrentUrl(), 'post' => json_encode($_POST), 'loc' => $loc, 'message' => $message, 'trace' => json_encode($traceList));
     if (GlobalConfig::$LOGGER_ASYNC) {
         $gearman = GearmanPool::getClient(GearmanConfig::$SERVER_COMMON);
         $gearman->doBackground('logger_async', json_encode($data));
     } else {
         LoggerInterface::save($data);
     }
     GlobalConfig::$LOGGER_ENABLE = $tmpEnable;
 }
예제 #5
0
    echo '<div id="test">';
    $url = Url::getCurrentUrl();
    $url->setQueryVar('noTest');
    echo '<a href="' . $url . '">Deactivate testing mode</a>';
    echo '</div>';
} else {
    // do not display testing stuff
}
?>
		<header>
			<h1>Charte Éditeurs-Fansubs</h1>
			<h2>Tentative d'accord à l'amiable entre des acteurs voulant promouvoir la Japanimation en France</h2>
		</header>
		<nav>
			<?php 
$url = Url::getCurrentUrl();
$displayedPage = Page::getDisplayedPage();
foreach (Page::getAvailablePages() as $page) {
    $url = new Url();
    $url->setQueryVar('page', $page->getId());
    echo '<a ' . ($displayedPage == $page ? 'class="selected"' : '') . ' href="' . $url . '">' . $page->getMenuTitle() . '</a>';
}
echo Format::toHtmlEmail('*****@*****.**', "Contact");
?>
		</nav>
		<article>
			<?php 
$page = Page::getDisplayedPage();
echo '<div id="lastUpdateTime">Last update: ' . date("d/m/Y H:i:s", $page->getLastUpdateTime()) . '</div>';
echo $page->getContent();
?>
예제 #6
0
$objBusiness = new Business();
$business = $objBusiness->getBusiness();
if (!empty($business)) {
    $objForm = new Form();
    $objValid = new Validation($objForm);
    if ($objForm->isPost('name')) {
        $objValid->_expected = array('name', 'address', 'telephone', 'email', 'website', 'vat_rate');
        $objValid->_required = array('name', 'address', 'telephone', 'email', 'vat_rate');
        $objValid->_special = array('email' => 'email');
        $vars = $objForm->getPostArray($objValid->_expected);
        if ($objValid->isValid()) {
            if ($objBusiness->updateBusiness($vars)) {
                Helper::redirect('/admin' . Url::getCurrentUrl(array('action', 'id')) . '&action=edited');
            } else {
                Helper::redirect('/admin' . Url::getCurrentUrl(array('action', 'id')) . '&action=edited-failed');
            }
        }
    }
    require_once 'template/_header.php';
    ?>
	
	<h1>Business</h1>
	
	<form action="" method="post">
		<table cellpadding="0" cellspacing="0" border="0" class="tbl_insert">
			
			<tr>
				<th><label for="name">Name: *</label></th>
				<td>
					<?php 
예제 #7
0
echo $firstPage;
?>
" href="<?php 
echo $firstUrl;
?>
">首页</a></li><li><a class="item item-lg" name="pager" value="<?php 
echo $prePage;
?>
" href="<?php 
echo $preUrl;
?>
">上一页</a></li><?php 
if ($lastPage) {
    for ($i = $beginPage; $i < $beginPage + $length; $i++) {
        $isSelected = $currentPage == $i ? 'selected' : '';
        $url = $currentPage == $i ? '#' : Url::getCurrentUrl(array('page' => $i));
        echo sprintf('<li><a class="item %s" name="pager" value="%s" href="%s">%s</a></li>', $isSelected, $i, $url, $i);
    }
}
?>
<li><a class="item item-lg" name="pager" value="<?php 
echo $nextPage;
?>
" href="<?php 
echo $nextUrl;
?>
">下一页</a></li><li><a class="item item-lg" name="pager" value="<?php 
echo $lastPage;
?>
" href="<?php 
echo $lastUrl;
예제 #8
0
                            <a href="/setup_uc_update/">会员中心</a> |
                            <a href="<?php 
    echo Url::make('//uc.hqoj.net/logout/', array('back-url' => Url::getCurrentUrl(array('back-url' => null))));
    ?>
">退出</a>
                        </div>
                    <?php 
} else {
    ?>
                        <div>
                            <a href="<?php 
    echo Url::make('//uc.hqoj.net/login/', array('back-url' => Url::getCurrentUrl(array('back-url' => null))));
    ?>
">登录</a> |
                            <a href="<?php 
    echo Url::make('//uc.hqoj.net/register/', array('back-url' => Url::getCurrentUrl(array('back-url' => null))));
    ?>
">注册</a>
                        </div>
                    <?php 
}
?>

                </td>
            </tr>
            </tbody>
        </table>
    </div>
</div>

<div class="module-wrap">
예제 #9
0
function buildRssUrlIfAvailable()
{
    if (getCurrentPage() == 'news') {
        $url = Url::getCurrentUrl();
        new NewsSelector();
        //force class loading for constants
        $selected = $url->hasQueryVar('select') ? $url->getQueryVar('select') : NEWSSELECTOR_ALL;
        $rssUrl = new Url('rss.php');
        $rssUrl->setQueryVar('select', empty($selected) ? null : $selected, true);
        $rssUrl->setQueryVar('h', null, !$_SESSION[MODE_H]);
        return $rssUrl;
    } else {
        return null;
    }
}
예제 #10
0
<?php

$page = PageContent::getInstance();
$page->setClass('project');
$project = Project::getProject(Url::getCurrentUrl()->getQueryVar('id'));
if ($project->isHentai() && !$_SESSION[MODE_H]) {
    require_once "pages/havert.php";
} else {
    if (TEST_MODE_ACTIVATED) {
        $options = new SimpleBlockComponent();
        $options->setClass('testFeatures');
        $options->addComponent("Options : ");
        $link = new Link(Url::getCurrentUrl(), "show hidden");
        if ($link->getUrl()->hasQueryVar('showHidden')) {
            $link->getUrl()->removeQueryVar('showHidden');
            $link->setClass('reverse');
        } else {
            $link->getUrl()->setQueryVar('showHidden');
        }
        $options->addComponent($link);
        $page->addComponent($options);
    }
    $page->addComponent(new Title($project->getName(), 1));
    $page->addComponent(new ProjectComponent($project, Url::getCurrentUrl()->hasQueryVar('showHidden')));
}
예제 #11
0
파일: Redirects.php 프로젝트: o-log/php-lib
 public static function redirectToSelf()
 {
     header('Location: ' . Url::getCurrentUrl());
     exit;
 }
예제 #12
0
<?php

$id = Url::getParam('id');
if (!empty($id)) {
    $objUser = new User();
    $user = $objUser->getUser($id);
    if (!empty($user)) {
        $objOrder = new Order();
        $orders = $objOrder->getClientOrders($id);
        if (empty($orders)) {
            $yes = '/admin' . Url::getCurrentUrl() . '&amp;remove=1';
            $no = 'javascript:history.go(-1)';
            $remove = Url::getParam('remove');
            if (!empty($remove)) {
                $objUser->removeUser($id);
                Helper::redirect('/admin' . Url::getCurrentUrl(array('action', 'id', 'remove', 'srch', Paging::$_key)));
            }
            require_once 'template/_header.php';
            ?>
<h1>Clients :: Remove</h1>
<p>Are you sure you want to remove this client (<?php 
            echo $user['first_name'] . " " . $user['last_name'];
            ?>
)?<br />
There is no undo!<br />
<a href="<?php 
            echo $yes;
            ?>
">Yes</a> | <a href="<?php 
            echo $no;
            ?>
예제 #13
0
 public function isLocalUrl()
 {
     $local = Url::getCurrentUrl();
     return $this->get(URL_SERVER) === $local->get(URL_SERVER);
 }
예제 #14
0
};
$intendedFilter = function (Project $project) {
    return !$project->isHidden() && $project->isIntended();
};
if (TEST_MODE_ACTIVATED) {
    $options = new SimpleBlockComponent();
    $options->setClass('testFeatures');
    $options->addComponent("Options : ");
    $link = new Link(Url::getCurrentUrl(), "show hidden");
    if ($link->getUrl()->hasQueryVar('showHidden')) {
        $link->getUrl()->removeQueryVar('showHidden');
        $link->setClass('reverse');
    } else {
        $link->getUrl()->setQueryVar('showHidden');
    }
    $options->addComponent($link);
    $page->addComponent($options);
}
// TODO limit to authorized access
if (Url::getCurrentUrl()->hasQueryVar('showHidden')) {
    call_user_func($listProcessor, new Title("Projets cachés", 2), $allProjects, $hiddenFilter, $useImageLists);
}
$categoryMap = array("subs" => $notLicensedAnimes, "scans" => $notLicensedDoujin);
$filterMap = array("en cours" => $runningFilter, "terminés" => $finishedFilter, "abandonnés" => $abandonnedFilter, "envisagés" => $intendedFilter);
$page->addComponent(new Title("Légalement indisponibles", 2));
foreach ($categoryMap as $category => $projects) {
    foreach ($filterMap as $desc => $filter) {
        call_user_func($listProcessor, ucfirst($category) . " " . $desc, $projects, $filter, $useImageLists);
    }
}
call_user_func($listProcessor, new Title("Légalement disponibles", 2), $allProjects, $licensedFilter, $useImageLists);
예제 #15
0
파일: list.php 프로젝트: aozhongxu/web_hqoj
<link rel="stylesheet" href="//sta.hqoj.net/js/plugin/kindeditor/plugins/code/prettify.css" />
<link type="text/css" href="//sta.hqoj.net/css/www/oj/doc_list.page.css" rel="stylesheet">

<div class="sidebar">
    <div class="nav" id="sidebar-fixed" >
        <div class="menu">
            <ul>
                <?php 
foreach ($this->docList as $docInfo) {
    ?>
                    <li>
                        <a <?php 
    echo Request::getGET('doc-id') == $docInfo['id'] ? 'class="hover"' : '';
    ?>
 href="<?php 
    echo Url::make(Url::getCurrentUrl(), array('doc-id' => $docInfo['id']));
    ?>
">
                            <span class="text"><?php 
    echo $docInfo['title'];
    ?>
</span>
                        </a>
                    </li>
                <?php 
}
?>
            </ul>
        </div>
    </div>
</div>
예제 #16
0
 public static function parseBBCode($text)
 {
     if (Format::$BBCodeParser === null) {
         Format::$BBCodeParser = new BBCodeParser();
         /**********************************\
         			          NO CLOSING TAGS
         			\**********************************/
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("separator", function ($tag, $parameter, $content) {
             return Separator::getInstance()->getHtml();
         }));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("pin", function ($tag, $parameter, $content) {
             return Pin::getInstance()->getHtml();
         }));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("advert", function ($tag, $parameter, $content) {
             return "<script src='http://www.blogbang.com/demo/js/blogbang_ad.php?id=6ee3436cd7' type='text/javascript'></script>";
         }));
         /**********************************\
         			       NO PARAMETERED TAGS
         			\**********************************/
         $notFormattedContent = function ($tag, $parameter, $content) {
             return BBCodeDescriptor::contentToString($content);
         };
         $simpleOpenTag = function ($tag, $parameter, $content) {
             return "<{$tag}>";
         };
         $simpleCloseTag = function ($tag, $parameter, $content) {
             return "</{$tag}>";
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("b", $simpleOpenTag, $simpleCloseTag));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("i", $simpleOpenTag, $simpleCloseTag));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("u", $simpleOpenTag, $simpleCloseTag));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("s", $simpleOpenTag, $simpleCloseTag));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("code", $simpleOpenTag, $simpleCloseTag, $notFormattedContent));
         /**********************************\
         			                TITLE
         			\**********************************/
         $titleOpenTag = function ($tag, $parameter, $content) {
             $level = 1;
             if ($parameter === null) {
                 // let as is
             } else {
                 $parameters = preg_split('#\\|#', $parameter);
                 $level = $parameters[0];
             }
             return "<h" . $level . ">";
         };
         $titleContent = function ($tag, $parameter, $content) {
             $level = 1;
             static $lastNumbers = array();
             if ($parameter === null) {
                 // let as is
             } else {
                 $parameters = preg_split('#\\|#', $parameter);
                 $level = $parameters[0];
                 if (count($parameters) == 2) {
                     if ($parameters[1] == 'number') {
                         if (in_array($level, array_keys($lastNumbers))) {
                             $lastNumbers[$level]++;
                         } else {
                             $lastNumbers[$level] = 1;
                         }
                         $content = $lastNumbers[$level] . ". " . $content;
                     } else {
                         throw new Exception($parameters[1] . " is not a known parameter");
                     }
                 } else {
                     // do nothing special
                 }
             }
             return $content;
         };
         $titleCloseTag = function ($tag, $parameter, $content) {
             $level = 1;
             if ($parameter === null) {
                 // let as is
             } else {
                 $parameters = preg_split('#\\|#', $parameter);
                 $level = $parameters[0];
             }
             return "</h" . $level . ">";
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("title", $titleOpenTag, $titleCloseTag, $titleContent));
         /**********************************\
         			                SIZE
         			\**********************************/
         $sizeOpenTag = function ($tag, $parameter, $content) {
             $parameter = is_numeric($parameter) ? $parameter . 'em' : $parameter;
             return "<span style='font-size: " . $parameter . ";'>";
         };
         $sizeCloseTag = function ($tag, $parameter, $content) {
             return "</span>";
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("size", $sizeOpenTag, $sizeCloseTag));
         /**********************************\
         			              COLORS
         			\**********************************/
         $colorOpenTag = function ($tag, $parameter, $content) {
             return "<span style='color: {$parameter};'>";
         };
         $colorCloseTag = function ($tag, $parameter, $content) {
             return "</span>";
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("color", $colorOpenTag, $colorCloseTag));
         /**********************************\
         			             ALIGNEMENT
         			\**********************************/
         $alignOpenTag = function ($tag, $parameter, $content) {
             if ($tag === 'align') {
                 $tag = empty($parameter) ? 'inherited' : $parameter;
             }
             if (in_array($tag, array('left', 'right', 'center', 'justify'))) {
                 return "<div style='text-align: {$tag};'>";
             } else {
                 throw new Exception($tag . " is not managed");
             }
         };
         $alignCloseTag = function ($tag, $parameter, $content) {
             return "</div>";
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("left", $alignOpenTag, $alignCloseTag));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("right", $alignOpenTag, $alignCloseTag));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("center", $alignOpenTag, $alignCloseTag));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("justify", $alignOpenTag, $alignCloseTag));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("align", $alignOpenTag, $alignCloseTag));
         /**********************************\
         			         LISTS & LIST ITEMS
         			\**********************************/
         $listOpenTag = function ($tag, $parameter, $content) {
             if ($tag === 'list') {
                 return $parameter === '1' ? '<ol>' : '<ul>';
             } else {
                 if ($tag === 'item') {
                     return '<li>';
                 } else {
                     throw new Exception($tag . " is not managed");
                 }
             }
         };
         $listCloseTag = function ($tag, $parameter, $content) {
             if ($tag === 'list') {
                 return $parameter === '1' ? '</ol>' : '</ul>';
             } else {
                 if ($tag === 'item') {
                     return '</li>';
                 } else {
                     throw new Exception($tag . " is not managed");
                 }
             }
         };
         $listContent = function ($tag, $parameter, $content) {
             if ($tag === 'list') {
                 $content = Format::trimAndCleanArray($content);
                 return BBCodeDescriptor::defaultContentCallback($tag, $parameter, $content);
             }
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("list", $listOpenTag, $listCloseTag, $listContent));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("item", $listOpenTag, $listCloseTag));
         /**********************************\
         			               IMAGES
         			\**********************************/
         $imageOpenTag = function ($tag, $parameter, $content) {
             if (empty($parameter)) {
                 $parameter = $content;
                 $content = null;
             }
             if (empty($parameter)) {
                 throw new Exception("No image given");
             }
             if ($tag === 'img') {
                 $image = new Image($parameter, $content);
             } else {
                 if (in_array($tag, array('img-left', 'imgl'))) {
                     $image = new Image($parameter, $content);
                     $image->makeLeftFloating();
                 } else {
                     if (in_array($tag, array('img-right', 'imgr'))) {
                         $image = new Image($parameter, $content);
                         $image->makeRightFloating();
                     } else {
                         if (in_array($tag, array('img-auto', 'imga'))) {
                             $image = new AutoFloatImage($parameter, $content);
                         } else {
                             if (in_array($tag, array('img-auto-right', 'imgar'))) {
                                 $image = new AutoFloatImage($parameter, $content, true);
                             } else {
                                 if (in_array($tag, array('img-auto-left', 'imgal'))) {
                                     $image = new AutoFloatImage($parameter, $content, false);
                                 } else {
                                     throw new Exception($tag . " is not managed");
                                 }
                             }
                         }
                     }
                 }
             }
             return $image->getCurrentHTML();
         };
         $imageCloseTag = function ($tag, $parameter, $content) {
             return "";
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("img", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("img-right", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("imgr", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("img-left", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("imgl", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("img-auto", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("imga", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("img-auto-left", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("imgal", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("img-auto-right", $imageOpenTag, $imageCloseTag, null));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("imgar", $imageOpenTag, $imageCloseTag, null));
         /**********************************\
         			          GENERIC LINKS
         			\**********************************/
         $linkOpenTag = function ($tag, $parameter, $content) {
             if (empty($parameter) && empty($content)) {
                 throw new Exception("no data has been given");
             } else {
                 if (empty($content)) {
                     $content = $parameter;
                 } else {
                     if (empty($parameter)) {
                         $parameter = $content;
                     } else {
                         // nothing is empty, so let as is
                     }
                 }
             }
             if (in_array($tag, array('url', 'ext'))) {
                 $link = new Link($parameter, $content);
                 if ($tag == 'ext' || $tag == 'url' && !$link->isLocalLink()) {
                     $link->openNewWindow(true);
                 }
             } else {
                 if ($tag == 'urlk') {
                     $parameter = preg_split('#\\|#', $parameter);
                     $url = null;
                     if (in_array('current', $parameter)) {
                         $url = Url::getCurrentUrl();
                     } else {
                         if (in_array('referer', $parameter)) {
                             $url = new Url($_SERVER['HTTP_REFERER']);
                         } else {
                             throw new Exception("no address keyword has been given (like 'current' or 'referer')");
                         }
                     }
                     $full = false;
                     if (in_array('full', $parameter)) {
                         $full = true;
                     }
                     $link = new Link($url, $content, $full);
                     if (!$link->isLocalLink()) {
                         $link->openNewWindow(true);
                     }
                 } else {
                     if ($tag == 'mail') {
                         if (is_numeric($parameter)) {
                             $parameter = TeamMember::getMember(intval($parameter))->getMail();
                         }
                         $link = new MailLink($parameter, $content);
                     } else {
                         throw new Exception($tag . " is not managed");
                     }
                 }
             }
             return $link->getOpenTag();
         };
         $linkContent = function ($tag, $parameter, $content) {
             if ($tag === 'urlk') {
                 if ($content === null) {
                     $parameter = preg_split('#\\|#', $parameter);
                     $url = null;
                     if (in_array('current', $parameter)) {
                         $url = Url::getCurrentUrl();
                     } else {
                         if (in_array('referer', $parameter)) {
                             $url = new Url($_SERVER['HTTP_REFERER']);
                         } else {
                             throw new Exception("no address keyword has been given (like 'current' or 'referer')");
                         }
                     }
                     $full = false;
                     if (in_array('full', $parameter)) {
                         $full = true;
                     }
                     $content = $url->toString($full);
                 }
             }
             return BBCodeDescriptor::contentToHTML($content);
         };
         $linkCloseTag = function ($tag, $parameter, $content) {
             return "</a>";
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("url", $linkOpenTag, $linkCloseTag, $linkContent));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("urlk", $linkOpenTag, $linkCloseTag, $linkContent));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("ext", $linkOpenTag, $linkCloseTag, $linkContent));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("mail", $linkOpenTag, $linkCloseTag, $linkContent));
         /**********************************\
         			          SPECIAL LINKS
         			\**********************************/
         $releaseOpenTag = function ($tag, $parameter, $content) {
             $parameter = preg_split('#\\|#', $parameter);
             if ($parameter[1] === '*') {
                 $parameter[1] = Release::getAllReleasesIDForProject($parameter[0]);
             } else {
                 $parameter[1] = Format::trimAndCleanArray(preg_split('#,#', $parameter[1]));
             }
             $link = new ReleaseLink($parameter[0], $parameter[1], null);
             return $link->getOpenTag();
         };
         $releaseContent = function ($tag, $parameter, $content) {
             if (empty($content)) {
                 $parameter = preg_split('#\\|#', $parameter);
                 if ($parameter[1] === '*') {
                     $parameter[1] = Release::getAllReleasesIDForProject($parameter[0]);
                 } else {
                     $parameter[1] = Format::trimAndCleanArray(preg_split('#,#', $parameter[1]));
                 }
                 $projectName = Project::getProject($parameter[0])->getName();
                 $numbers = array();
                 $others = array();
                 foreach ($parameter[1] as $key => $id) {
                     if (preg_match("#^ep\\d+\$#", $id)) {
                         $numbers[] = substr($id, 2);
                     } else {
                         $others[] = $id;
                     }
                 }
                 sort($numbers);
                 if (!empty($numbers)) {
                     $ref = 0;
                     $last = $numbers[0];
                     for ($i = 1; $i < count($numbers); $i++) {
                         $current = $numbers[$i];
                         if ($current == $last + 1) {
                             $numbers[$i] = null;
                         } else {
                             if ($numbers[$ref] != $last) {
                                 $numbers[$ref] .= "-" . $last;
                             }
                             $ref = $i;
                         }
                         $last = $current;
                     }
                     if ($numbers[$ref] != $last) {
                         $numbers[$ref] .= "-" . $last;
                     }
                     $numbers = array_filter($numbers);
                     $list = implode(", ", $numbers) . ", ";
                 }
                 foreach ($others as $id) {
                     $list = Release::getRelease($parameter[0], $id)->getName() . ", ";
                 }
                 $list = substr($list, 0, strlen($list) - 2);
                 return $projectName . " " . $list;
             } else {
                 return BBCodeDescriptor::contentToHTML($content);
             }
         };
         $partnerOpenTag = function ($tag, $parameter, $content) {
             if (empty($parameter)) {
                 $parameter = $content;
                 $content = null;
             }
             $parameter = preg_split('#\\|#', $parameter);
             $partner = null;
             $useImage = false;
             foreach ($parameter as $param) {
                 try {
                     $partner = Partner::getPartner($param);
                 } catch (Exception $e) {
                     if ($param === 'image') {
                         $useImage = true;
                     }
                 }
             }
             if ($partner === null) {
                 $partner = Partner::getPartner($content);
                 $content = null;
             }
             $link = new PartnerLink($partner, BBCodeDescriptor::contentToHTML($content));
             $link->openNewWindow(true);
             if ($useImage) {
                 $link->setUseImage(true);
             }
             return $link->getOpenTag();
         };
         $partnerContent = function ($tag, $parameter, $content) {
             if (empty($parameter)) {
                 $parameter = $content;
                 $content = null;
             }
             $parameter = preg_split('#\\|#', $parameter);
             $partner = null;
             $useImage = false;
             foreach ($parameter as $param) {
                 try {
                     $partner = Partner::getPartner($param);
                 } catch (Exception $e) {
                     if ($param === 'image') {
                         $useImage = true;
                     }
                 }
             }
             if ($partner === null) {
                 $partner = Partner::getPartner($content);
                 $content = null;
             }
             $link = new PartnerLink($partner, BBCodeDescriptor::contentToHTML($content));
             $link->openNewWindow(true);
             if ($useImage) {
                 $link->setUseImage(true);
             }
             return $link->getHTMLContent();
         };
         $projectOpenTag = function ($tag, $parameter, $content) {
             if (empty($parameter)) {
                 $link = new ProjectLink(Project::getProject($content));
             } else {
                 $parameter = preg_split('#\\|#', $parameter);
                 try {
                     $link = new ProjectLink(Project::getProject($parameter[0]));
                 } catch (Exception $e) {
                     $link = new ProjectLink(Project::getProject($content));
                 }
             }
             return $link->getOpenTag();
         };
         $projectContent = function ($tag, $parameter, $content) {
             if (empty($parameter)) {
                 $link = new ProjectLink(Project::getProject($content));
             } else {
                 $parameter = preg_split('#\\|#', $parameter);
                 try {
                     $link = new ProjectLink(Project::getProject($parameter[0]));
                     if (!empty($content)) {
                         $link->setContent(BBCodeDescriptor::contentToHTML($content));
                     }
                 } catch (Exception $e) {
                     $link = new ProjectLink(Project::getProject($content));
                 }
                 if (in_array('image', $parameter)) {
                     $link->useImage(true);
                 }
             }
             return $link->getHTMLContent();
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("release", $releaseOpenTag, $linkCloseTag, $releaseContent));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("project", $projectOpenTag, $linkCloseTag, $projectContent));
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("partner", $partnerOpenTag, $linkCloseTag, $partnerContent));
         /**********************************\
         			             SPOILER
         			\**********************************/
         $spoilerOpenTag = function ($tag, $parameter, $content) {
             static $id = 0;
             $id++;
             $index = 0;
             while (empty($parameter)) {
                 $parameter = $content[$index];
                 if (is_string($parameter)) {
                     $parameter = trim($parameter);
                 }
                 $index++;
             }
             if ($parameter instanceof BBCodeDescriptor) {
                 $parameter = $parameter->generateHTML();
             }
             // TODO show the spoiler if javascript deactivated
             return "<a href=\"#\" onclick=\"show('spoiler{$id}');return(false)\">{$parameter}</a><object id=\"spoiler{$id}\" style=\"display: none;\">";
         };
         $spoilerContent = function ($tag, $parameter, $content) {
             $index = 0;
             while (empty($parameter)) {
                 $parameter = $content[$index];
                 if (is_string($parameter)) {
                     $parameter = trim($parameter);
                 }
                 $index++;
             }
             if ($index > 0) {
                 unset($content[$index - 1]);
             }
             return BBCodeDescriptor::defaultContentCallback($tag, $parameter, $content);
         };
         $spoilerCloseTag = function ($tag, $parameter, $content) {
             return '</object>';
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("spoiler", $spoilerOpenTag, $spoilerCloseTag, $spoilerContent));
         /**********************************\
         			              VIDEOS
         			\**********************************/
         function parseVideoParameter($parameter)
         {
             $parameter = preg_split('#\\|#', $parameter);
             $result = array();
             foreach ($parameter as $row) {
                 $row = preg_split('#:#', $row);
                 if (in_array($row[0], array('width', 'height'))) {
                     $result[$row[0]] = $row[1];
                 } else {
                     throw new Exception($row[0] . " is not managed");
                 }
             }
             if (!isset($result['width']) || $result['width'] <= 0) {
                 throw new Exception("The width of the video is not well defined");
             }
             if ($result['height'] <= 0) {
                 throw new Exception("The height of the video is not well defined");
             }
             return $result;
         }
         $videoOpenTag = function ($tag, $parameter, $content) {
             $parameter = parseVideoParameter($parameter);
             $width = $parameter['width'];
             $height = $parameter['height'];
             return "<object width='{$width}' height='{$height}'><param name='allowfullscreen' value='true' /><param name='allowscriptaccess' value='always' /><param name='movie' value='{$content}' />";
         };
         $videoContent = function ($tag, $parameter, $content) {
             $parameter = parseVideoParameter($parameter);
             $width = $parameter['width'];
             $height = $parameter['height'];
             return "<embed src='{$content}' type='application/x-shockwave-flash' allowfullscreen='true' allowscriptaccess='always' width='{$width}' height='{$height}'></embed>";
         };
         $videoCloseTag = function ($tag, $parameter, $content) {
             return "</object>";
         };
         Format::$BBCodeParser->addDescriptor(new BBCodeDescriptor("video", $videoOpenTag, $videoCloseTag, $videoContent));
     }
     return Format::$BBCodeParser->translate($text);
 }
예제 #17
0
<?php

$page = PageContent::getInstance();
$id = Url::getCurrentUrl()->getQueryVar('id');
$news = News::getNews($id);
$page->addComponent(new NewsComponent($news));
예제 #18
0
 public function defaultAction()
 {
     $pageSize = 20;
     $page = Pager::get();
     $loginName = Request::getGET('login-name', '');
     $path = Request::getGET('path', '');
     $includePath = Request::getGET('include-path', '');
     // 路径非法提示
     if (!empty($path)) {
         if (!RootPermissionInterface::isValidPath(array('path' => $path))) {
             $this->setNotice(FrameworkVars::NOTICE_ERROR, "路径{$path}格式不正确!");
             $url = Url::getCurrentUrl(array('path' => null));
             Url::redirect($url);
         }
     }
     // 路径非法提示
     if (!empty($includePath)) {
         if (!RootPermissionInterface::isValidPath(array('path' => $includePath))) {
             $this->setNotice(FrameworkVars::NOTICE_ERROR, "路径{$includePath}格式不正确!");
             $url = Url::getCurrentUrl(array('include-path' => null));
             Url::redirect($url);
         }
     }
     // 用户不存在提示
     if (!empty($loginName)) {
         $userInfo = UserCommonInterface::getByLoginName(array('login_name' => $loginName));
         if (empty($userInfo)) {
             $this->setNotice(FrameworkVars::NOTICE_ERROR, '用户不存在!');
             $url = Url::getCurrentUrl(array('login-name' => null));
             Url::redirect($url);
         }
     }
     // 构建where
     $where = array();
     if (!empty($userInfo)) {
         $where[] = array('user_id', '=', $userInfo['id']);
     }
     if (!empty($path)) {
         $managerIds = RootManagerInterface::getAllowedManagerIds(array('path' => $path));
         $where[] = array('id', 'IN', $managerIds);
     }
     if (!empty($includePath)) {
         $managerIds = RootManagerInterface::getIncludeManagerIds(array('path' => $includePath));
         $where[] = array('id', 'IN', $managerIds);
     }
     $offset = ($page - 1) * $pageSize;
     $managerList = RootManagerInterface::getList(array('where' => $where, 'limit' => $pageSize, 'offset' => $offset));
     $allCount = RootManagerInterface::getCount($where);
     $userList = array();
     $pathHash = array();
     if (!empty($managerList)) {
         $userIds = array_column($managerList, 'user_id');
         $userList = UserCommonInterface::getById(array('id' => $userIds));
         $userList = Arr::listToHash('id', $userList);
         // 获取权限列表
         $managerIds = array_column($managerList, 'id');
         $pathHash = RootManagerInterface::getPaths(array('id' => $managerIds));
     }
     // 找出invalid path
     $invalidHash = array();
     foreach ($pathHash as $id => $pathSet) {
         foreach ($pathSet as $tmpPath) {
             if (array_key_exists($tmpPath, $invalidHash)) {
                 continue;
             }
             $invalidHash[$tmpPath] = RootPermissionInterface::findPath(array('path' => $tmpPath)) ? 0 : 1;
         }
     }
     // 缓存部分的html
     $html = array();
     $html['pager'] = $this->view->fetch(array('renderAllCount' => $allCount, 'renderPageSize' => $pageSize, 'renderRadius' => 8), 'widget/pager.php');
     $this->renderFramework(array('html' => $html, 'managerList' => $managerList, 'userList' => $userList, 'pathHash' => $pathHash, 'invalidHash' => $invalidHash), 'manager/list.php');
 }
예제 #19
0
<?php

$url = '/admin' . Url::getCurrentUrl(array('action', 'id'));
require_once 'template/_header.php';
?>
<h1>Clients :: Edit</h1>
<p>The record has been updated successfully.<br />
<a href="<?php 
echo $url;
?>
">Go back to the list of clients.</a></p>
<?php 
require_once 'template/_footer.php';
예제 #20
0
<?php

try {
    /***************************************\
    		              PAGE LOADING
    		\***************************************/
    $page = getCurrentPage();
    if (!in_array($page, array('project', 'news', 'news2', 'about', 'contact', 'bug', 'projects', 'team', 'xdcc', 'havert', 'dossiers', 'dossier', 'partenariat', 'kanaiiddl', 'recrutement', 'dakko', 'dons', 'dl', 'recruit'))) {
        throw new Exception("Inexistant page " . $page);
    }
    try {
        $id = Url::getCurrentUrl()->getQueryVar('page');
        PageContent::getInstance()->setClass($id);
        $page = Page::getPage($id);
        $content = $page->getContent();
        if ($page->useBBCode()) {
            $content = Format::convertTextToHTML($content);
        }
        PageContent::getInstance()->addComponent(new SimpleTextComponent($content));
    } catch (Exception $e) {
        require_once "interface/pages/{$page}.php";
    }
    PageContent::getInstance()->writeNow();
} catch (Exception $e) {
    if (TEST_MODE_ACTIVATED) {
        echo '<section id="page">';
        echo 'Invalid URL, the bug page should be displayed in not testing mode.<br/><br/>';
        echo $e->__toString();
        echo '</section>';
    } else {
        $pageContent = PageContent::getInstance();
예제 #21
0
    if ($link->getUrl()->hasQueryVar('showPrepared')) {
        $link->getUrl()->removeQueryVar('showPrepared');
        $link->setClass('reverse');
    } else {
        $link->getUrl()->setQueryVar('showPrepared');
    }
    $options->addComponent($link);
    $link = new Link(Url::getCurrentUrl(), "show old");
    if ($link->getUrl()->hasQueryVar('showOld')) {
        $link->getUrl()->removeQueryVar('showOld');
        $link->setClass('reverse');
    } else {
        $link->getUrl()->setQueryVar('showOld');
    }
    $options->addComponent($link);
    $page->addComponent($options);
}
$page->addComponent($views);
$remaining = 10;
if (Url::getCurrentUrl()->hasQueryVar('showOld')) {
    // TODO display this option or implement pages
    $remaining = -1;
}
foreach ($newsList as $news) {
    $page->addComponent(new NewsComponent($news));
    $remaining--;
    if ($remaining == 0) {
        break;
    }
}
$page->addComponent($views);
예제 #22
0
$prev = $renderMaxId + 1;
$next = $renderMinId - 1;
if ($next < 0) {
    $next = 0;
}
?>

<ul class="widget-pager">
    <li><a class="item item-lg" href="<?php 
echo Url::getCurrentUrl(array('min-id' => null, 'max-id' => null));
?>
">首页</a></li>
    <?php 
if (!empty($renderMinId)) {
    ?>
        <li><a class="item item-lg" href="<?php 
    echo Url::getCurrentUrl(array('min-id' => $prev, 'max-id' => null));
    ?>
">上一页</a></li>
        <li><a class="item item-lg" href="<?php 
    echo Url::getCurrentUrl(array('min-id' => null, 'max-id' => $next));
    ?>
">下一页</a></li>
    <?php 
}
?>
    <li><a class="item item-lg" href="<?php 
echo Url::getCurrentUrl(array('min-id' => 1, 'max-id' => null));
?>
">末页</a></li>
</ul>
예제 #23
0
    echo $projectInfo['title'];
    ?>
</a></li>
                <?php 
}
?>
            </ul>
        </div>
        <div class="item-4">
            <a class="tab-title" href="#"><?php 
echo $this->loginUserInfo['username'];
?>
</a>
            <ul class="menu">
                <li><a href="//uc.hqoj.net/logout/?back-url=<?php 
echo Url::getCurrentUrl();
?>
">退出</a></li>
            </ul>
        </div>
    </div>
</div>

<div class="module-breadcrumb">
    <a href="<?php 
echo $this->backendProjectInfo['url'];
?>
"><?php 
echo $this->backendProjectInfo['title'];
?>
</a>
예제 #24
0
     $link->getUrl()->removeQueryVar('phpinfo');
     $link->setClass('reverse');
 } else {
     $link->getUrl()->setQueryVar('phpinfo');
 }
 $features->addComponent($link);
 $link = new Link(Url::getCurrentUrl(), 'Go in the future');
 if (Url::getCurrentUrl()->hasQueryVar('setdate')) {
     $link->getUrl()->removeQueryVar('setdate');
     $link->setClass('reverse');
 } else {
     $link->getUrl()->setQueryVar('setdate', PHP_INT_MAX);
 }
 $features->addComponent($link);
 $link = new Link(Url::getCurrentUrl(), 'deactivate testing mode');
 if (Url::getCurrentUrl()->hasQueryVar('noTest')) {
     $link->getUrl()->removeQueryVar('noTest');
     $link->setClass('reverse');
 } else {
     $link->getUrl()->setQueryVar('noTest');
 }
 $features->addComponent($link);
 $features->addComponent('<br/>');
 $features->addComponent(date("Y-m-d H:i:s", $_SESSION[CURRENT_TIME]));
 $features->addComponent('<br/>');
 $branches = array();
 exec('git branch', $branches);
 foreach ($branches as $branch) {
     if (preg_match("#^\\* .*\$#", $branch)) {
         $features->addComponent(substr($branch, 2));
         break;