我想将VoteNY扩展添加到我的wiki中,因此所有用户都可以相互评价。此扩展需要行
<vote type="1"></vote>
在每个应该可投票的页面上。 现在我尝试最初以编程方式在每页(~10000页)之上写这些行。我已经找到一个钩子来创建新文章时添加该行。但是每一页都应该有这一行。
这是我到目前为止所做的:
<?php
$TitleList = [];
# get the edit ticket
$jsn = file_get_contents('http://wiki/api.php?action=query&meta=tokens&format=json');
$json_a = json_decode($jsn, true);
$token = $json_a['query']['tokens']['csrftoken'];
# populate the list of all pages
$urlGET = 'http://wiki/api.php?action=query&list=allpages&format=json';
$json = file_get_contents($urlGET);
$json_b = json_decode( $json ,true);
foreach ($json_b['query']['allpages'] as $page)
{
array_push($TitleList, $page['title']);
}
# //add the line on top of every page
foreach ($TitleList as $title)
{
$data = array(
'action' => 'edit',
'title' => $title,
'prependtext' => '<vote type="1"></vote>',
'token' => $token);
# Create a connection
$url = 'http://wiki/api.php?';
$ch = curl_init($url);
# Form data string, automatically urlencode
$postString = http_build_query($data, '', '&');
# Setting our options
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
# Get the response
$response = curl_exec($ch);
curl_close($ch);
echo($response);
}
到目前为止这是可行的。但是我认识到&list=allpages
没有给我所有的页面(40%缺少)我的wiki。
答案 0 :(得分:-1)
感谢评论中的提示和提示。我设法让脚本运行正常。我编辑了我的问题。