1. 程式人生 > >在開源UOJ的導航欄中添加新頁面鏈接

在開源UOJ的導航欄中添加新頁面鏈接

這樣的 linu 當前 edit 想要 view tps ack 頁面

前言

剛用開源UOJ搭建OJ成功時就想在導航欄那裏添加一個站內頁面鏈接,無奈當時亂搞水平低,網上也沒有教程,不曉得怎麽弄

今天突然來了閑情亂搞一通,結果還真亂搞成了...特意寫下為後來人少走點彎路

前置技能點

  • Linux基本命令行操作

如果您覺得這篇文章很naiive,請諒解,因為我對前端一無所知,也是以這樣的視角寫一份教程

假設我們要在導航欄加一個叫NCOD的站內鏈接,並創建一個叫NCOD的站內頁面

Step1

先找個地方把當前版本用SVN檢出,如果您不知道這是什麽船新操作,建議您仔細閱讀文檔中對SVN的介紹

註意在這裏SVN地址後還要加/uoj,例如svn co svn://xxx.xxx.x.x/uoj ...

然後cd uoj/1/app

Step2

首先cd views,然後看到一個叫main-nav.php的玩意沒,sudo gedit main-nav.php(如果你是V黨請自便)

然後你就會看到一大串導航欄中已經有的鏈接名字的英文,比如hack,contests之類的,你只要仿造格式復制一句話加在後面就好了,比如

<li><a href="/NCOD"><?= UOJLocalde::get(‘NCOD‘) ?></a></li>

這時候你把文件提交到SVN倉庫(如果您不知道這是什麽,請您還是閱讀文檔 中對SVN的介紹),會發現導航欄多了個叫NCOD

的鏈接,但是點進去卻是404,接下來我們就要創建一個叫NCOD的界面

Step3

cd ..\app目錄,再cd controllers,會發現有一大堆php,這時候只要在這裏新建個php文件就行了,例如

gedit NCOD.php,裏面的內容也是有講究的,例如

<?php echoUOJPageHeader(UOJLocale::(get(‘NCOD‘)))?>
<article>
  <header>
    <h2 class="page-header">National Coming Out Day</h2>
  <header>
  ...
<article>
<?php echoUOJPageFooter() ?>

註意第一行中括號內容要一致,如果您沒有把握,您可以復制faq.php的格式看一看

保存修改後你需要將這個文件加到SVN倉庫

例如svn add NCOD.php

Step4

創建php文件後再cd ..\app目錄

看到一個叫route.php的玩意沒?sudo gedit route.php

仿照格式加一句話就好了,例如

Route::any(‘/NCOD‘,‘NCOD.php‘);

然後保存修改後再cd /locale/basic,修改zh-cn.php,仿照格式在其中加上導航欄中你想要的中文名字

例如‘NCOD‘ => ‘出櫃日‘,

Step5

最後回到\app文件夾,將這個版本提交上倉庫即可

svn commit -m "..." *

話說距離初賽還有2天還在搞這個幺蛾子,怕是要涼了

在開源UOJ的導航欄中添加新頁面鏈接