为coder建立了一个“编程百科 ”http://codingwiki.info,codingwiki采用mediawiki,这里记录详细的配置:
1、首先,配置logo
# logo
$wgLogo = "/logo.png";
2、配置时间
## Timezone Settings
$wgLocaltimezone = "Asia/Shanghai";
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 3600;
putenv("TZ=$oldtz");
3、配置上传
#开启图片上传
$wgEnableUploads= true;
#上传文件类型
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg','doc','ppt','pdf' );
4、urlrewrite Url重写
#url REWRITE
$wgScriptPath = "";
$wgArticlePath = "/$1";
$wgUsePathInfo = true;
$wgScriptExtension = ".php";
服务器采用nginx,添加下面的配置
location / { if (!-e $request_filename) { rewrite ^/([^?]*)(?:\?(.*))? /index.php?title=$1&$2 last; } }
5、添加常用扩展
#SyntaxHighlight
require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");
#ParserFunctions
require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
6、实现自己的扩展——找出wiki最热条目和最新条目,以及热门分类,通过扩展tag实现
直接贴代码,详细效果见
http://codingwiki.info/%E9%A6%96%E9%A1%B5 ,
http://codingwiki.info/%E5%88%86%E7%B1%BB:.NET
001
|
<?php
|
002
|
$wgHooks
[
'ParserFirstCallInit'
][] =
'efCodingWikiTagParserInit'
;
|
003
|
|
004
|
function
efCodingWikiTagParserInit( &
$parser
) {
|
005
|
$parser
->setHook(
'hotpages'
,
'efHotPageRender'
);
|
006
|
$parser
->setHook(
'hotcategories'
,
'efHotCategoryRender'
);
|
007
|
$parser
->setHook(
'newpage'
,
'efNewPageRender'
);
|
008
|
return
true;
|
009
|
}
|
010
|
011
|
function
makePageListItem(
$row
) {
|
012
|
global
$wgUser
;
|
013
|
$title
= Title::makeTitleSafe(
$row
->page_namespace,
$row
->page_title );
|
014
|
if
( !
is_null
(
$title
) ) {
|
015
|
$skin
=
$wgUser
->getSkin();
|
016
|
$link
=
$row
->page_is_redirect
|
017
|
?
'<span class="allpagesredirect">'
.
$skin
->makeKnownLinkObj(
$title
) .
'</span>'
|
018
|
:
$skin
->makeKnownLinkObj(
$title
);
|
019
|
return
(
"<li>{$link}({$row->page_counter}次)</li>\n"
);
|
020
|
}
else
{
|
021
|
return
(
"<!-- Invalid title "
. htmlspecialchars(
$row
->page_title ) .
" in namespace "
. htmlspecialchars(
$row
->page_namespace ) .
" -->\n"
);
|
022
|
}
|
023
|
}
|
024
|
|
025
|
function
efHotPageRender(
$input
,
$args
,
$parser
,
$frame
) {
|
026
|
global
$wgRequest
,
$wgOut
,
$wgContLang
,
$wgLang
;
|
027
|
$dbr
= wfGetDB( DB_SLAVE );
|
028
|
$limit
= isset(
$args
[
"count"
])?
$args
[
"count"
]:10;
|
029
|
$res
= null;
|
030
|
if
(isset(
$args
[
"category"
])){
|
031
|
$res
=
$dbr
->select(
|
032
|
array
(
'page'
,
'categorylinks'
),
|
033
|
'*'
,
|
034
|
array
(
'cl_to'
=>
"{$args['category']}"
),
|
035
|
__METHOD__
,
|
036
|
array
(
|
037
|
'ORDER BY'
=>
'page_counter DESC'
,
|
038
|
'LIMIT'
=>
"$limit"
,
|
039
|
'OFFSET'
=>
'0'
,
|
040
|
),
|
041
|
array
(
'categorylinks'
=>
array
(
'JOIN'
,
'page_id=cl_from'
) )
|
042
|
);
|
043
|
}
else
{
|
044
|
$res
=
$dbr
->select(
|
045
|
'page'
,
|
046
|
array
(
|
047
|
'page_namespace'
,
|
048
|
'page_title'
,
|
049
|
'page_counter'
,
|
050
|
'page_is_redirect'
|
051
|
),
|
052
|
array
(
'page_namespace'
=>
'0'
),
|
053
|
__METHOD__
,
|
054
|
array
(
|
055
|
'ORDER BY'
=>
'page_counter DESC'
,
|
056
|
'LIMIT'
=>
"$limit"
,
|
057
|
'OFFSET'
=>
'0'
,
|
058
|
)
|
059
|
);
|
060
|
}
|
061
|
$result
=
"<ul>"
;
|
062
|
foreach
(
$res
as
$row
) {
|
063
|
$result
.= makePageListItem(
$row
);
|
064
|
}
|
065
|
$result
.=
"</ul>"
;
|
066
|
return
$result
;
|
067
|
}
|
068
|
069
|
function
efHotCategoryRender(
$input
,
$args
,
$parser
,
$frame
) {
|
070
|
global
$wgRequest
,
$wgOut
,
$wgContLang
,
$wgLang
;
|
071
|
$dbr
= wfGetDB( DB_SLAVE );
|
072
|
$limit
= isset(
$args
[
"count"
])?
$args
[
"count"
]:10;
|
073
|
$res
=
$dbr
->select(
|
074
|
'category'
,
|
075
|
'*'
,
|
076
|
array
(),
|
077
|
__METHOD__
,
|
078
|
array
(
|
079
|
'ORDER BY'
=>
'cat_pages DESC'
,
|
080
|
'LIMIT'
=>
"$limit"
,
|
081
|
'OFFSET'
=>
'0'
,
|
082
|
)
|
083
|
);
|
084
|
$result
=
"<ul>"
;
|
085
|
foreach
(
$res
as
$row
) {
|
086
|
$result
.=
"<li><a
href='/分类:{$row->cat_title}'>{$row->cat_title}</a>(<a
href='/分类:{$row->cat_title}'>{$row->cat_pages}</a>)<
/li>\n"
;
|
087
|
}
|
088
|
$result
.=
"</ul>"
;
|
089
|
return
$result
;
|
090
|
}
|
091
|
092
|
function
efNewPageRender(
$input
,
$args
,
$parser
,
$frame
) {
|
093
|
global
$wgRequest
,
$wgOut
,
$wgContLang
,
$wgLang
;
|
094
|
$dbr
= wfGetDB( DB_SLAVE );
|
095
|
$limit
= isset(
$args
[
"count"
])?
$args
[
"count"
]:10;
|
096
|
$res
= null;
|
097
|
|
098
|
if
(isset(
$args
[
"category"
])){
|
099
|
$res
=
$dbr
->select(
|
100
|
array
(
'page'
,
'categorylinks'
),
|
101
|
'*'
,
|
102
|
array
(
'cl_to'
=>
"{$args['category']}"
),
|
103
|
__METHOD__
,
|
104
|
array
(
|
105
|
'ORDER BY'
=>
'page_id DESC'
,
|
106
|
'LIMIT'
=>
"$limit"
,
|
107
|
'OFFSET'
=>
'0'
,
|
108
|
),
|
109
|
array
(
'categorylinks'
=>
array
(
'JOIN'
,
'page_id=cl_from'
) )
|
110
|
);
|
111
|
}
else
{
|
112
|
$res
=
$dbr
->select(
|
113
|
'page'
,
|
114
|
array
(
|
115
|
'page_namespace'
,
|
116
|
'page_title'
,
|
117
|
'page_counter'
,
|
118
|
'page_is_redirect'
|
119
|
),
|
120
|
array
(),
|
121
|
__METHOD__
,
|
122
|
array
(
|
123
|
'ORDER BY'
=>
'page_id DESC'
,
|
124
|
'LIMIT'
=>
"$limit"
,
|
125
|
'OFFSET'
=>
'0'
,
|
126
|
)
|
127
|
);
|
128
|
}
|
129
|
$result
=
"<ul>"
;
|
130
|
foreach
(
$res
as
$row
) {
|
131
|
$result
.= makePageListItem(
$row
);
|
132
|
}
|
133
|
$result
.=
"</ul>"
;
|
134
|
return
$result
;
|
135
|
}
|
相关推荐
meidawikiReact 使用React构建Media Wiki客户端 演示: :
MediaWiki在Windows安装部署——XAMPP安装-附件资源
将meidawiki项目处理好只需要运行sql初始化到mysql中并修改安装目录下LocalSettings.php对应的数据库及站点访问信息就可以直接部署
mediawiki-1.31.14.tar.gz
微信小程序番茄时钟的源码,支持进一步的修改。番茄钟,指的是把工作任务分解成半小时左右,集中精力工作25分钟后休息5分钟,如此视作种一个“番茄”,而“番茄工作法”的流程能使下一个30分钟更有动力。
电子元件 电子行业 行业分析 数据分析 数据报告 行业报告
安享智慧理财测试项目Mock服务代码
【资源说明】 课程设计 基于SparkMLlib的ALS算法的电影推荐系统源码+详细文档+全部数据齐全.zip课程设计 基于SparkMLlib的ALS算法的电影推荐系统源码+详细文档+全部数据齐全.zip 【备注】 1、该项目是高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
华中科技大学电信专业 课程资料 作业 代码 实验报告-雷达与信息对抗-内含源码和说明书.zip
私信博主免费获取真题解析以及代码
【资源说明】 基于Bilibili公开的数据,通过Flink实时分析计算,做成需要的动态图表源码+部署文档+全部资料齐全 高分项目.zip基于Bilibili公开的数据,通过Flink实时分析计算,做成需要的动态图表源码+部署文档+全部资料齐全 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
私信博主免费获取真题解析以及代码
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
【资源说明】 基于Hadoop的智能购书系统的设计与实现+部署文档+全部资料 高分项目.zip基于Hadoop的智能购书系统的设计与实现+部署文档+全部资料 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
在面对机械装备制造行业日益增长的信息化需求时,本PPT格式的解决方案文档旨在提供一个全面、高效的数字化转型蓝图。这个资料包涵盖了从生产流程自动化到智能数据分析,再到供应链管理优化的各个方面,旨在帮助机械制造企业实现更高层次的生产智能化和运营效率。解决方案中,我们首先强调了制造执行系统(MES)的集成,它能够实时监控工厂的生产线,确保生产过程的透明度和可追溯性。通过与物联网(IoT)设备的结合,可以实现设备状态的远程监控和维护预测,从而减少停机时间并提高生产效率。其次,方案中还包含了一套完整的企业资源规划(ERP)系统,它能够帮助企业管理从原材料采购到成品出库的整个流程,确保物流和信息流的无缝对接。ERP系统的应用不仅提升了资源的使用效率,也为企业决策提供了数据支持。此外,我们还提出了基于大数据和人工智能技术的智能分析模块,该模块能够对生产过程中产生的海量数据进行深度分析,帮助企业发现潜在的生产瓶颈,优化产品设计,提升产品质量,同时也能够根据市场趋势调整生产计划,增强企业的市场响应能力。最后,为了确保整个信息系统的安全性和稳定性,解决方案还包括了先进的网络安全措施和数据备份机制,保障企业