User talk:Badmadevil: Difference between revisions
Content added Content deleted
m (→Not Implemented Tasks by Language: add links for navigation, some minor changes) |
m (→Not Implemented Tasks by Language: updated, query string handling changed) |
||
Line 25: | Line 25: | ||
<php><?php |
<php><?php |
||
// may be need to enable allow_url_fopen, or change it to local file path |
// may be need to enable allow_url_fopen, or change it to local file path |
||
define('RCHost' , 'rosettacode.org') ; |
define('RCHost' , 'www.rosettacode.org') ; |
||
define('ROSETTA', 'http://' . RCHost) ; |
define('ROSETTA', 'http://' . RCHost) ; |
||
define('Prefix', ROSETTA . '/wiki/Category:') ; |
define('Prefix', ROSETTA . '/wiki/Category:') ; |
||
define('TaskURL', |
define('TaskURL', 'Solutions_by_Programming_Task') ; |
||
define('ListURL', |
define('ListURL', 'Solutions_by_Programming_Language') ; |
||
define(' |
define('LANGID', 'LANGID') ; // if use as a query string key-value pair |
||
define('NA', 'NotAvaliable') ; |
define('NA', 'NotAvaliable') ; |
||
$subfix = "" ; |
|||
$langID = LangId() ; |
$langID = LangId() ; |
||
⚫ | |||
// $langID has been encoded 2 time so that C++ not mistaken with C |
|||
⚫ | |||
// this control how to access this scrtpt |
// this control how to access this scrtpt |
||
$scriptURL = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['URL'] ; |
$scriptURL = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['URL'] ; |
||
function ScriptURL($langId){ |
function ScriptURL($langId){ |
||
global $ |
global $scriptURL, $subfix; |
||
⚫ | |||
if($langId == NA) |
|||
$tail = strlen($subfix) == 0 ? '' : '?' . $subfix ; |
|||
⚫ | |||
$tail = strlen($subfix) == 0 ? '' : '&' . $subfix ; |
|||
⚫ | |||
⚫ | |||
return $scriptURL . $tail ; |
|||
} |
|||
function pageUrl($page) { |
|||
global $subfix; |
|||
$tail = strlen($subfix) == 0 ? '' : '?' . $subfix ; |
|||
return Prefix . $page . $tail ; |
|||
} |
} |
||
function myEncode($s) { return str_replace('.', '%252E', rawurlencode($s)) ; } |
function myEncode($s) { return str_replace('.', '%252E', rawurlencode($s)) ; } |
||
function myDecode($s) { return str_replace('_', ' ' , rawurldecode($s)) ; } |
function myDecode($s) { return str_replace('_', ' ' , rawurldecode($s)) ; } |
||
function LangId(){ |
function LangId(){ |
||
global $subfix ; |
|||
$langId = NA ; |
$langId = NA ; |
||
if(count($ |
if(count($_SERVER['QUERY_STRING']) > 0) { |
||
parse_str($_SERVER['QUERY_STRING'], $query) ; |
|||
if(array_key_exists( |
if(array_key_exists(LANGID, $query) && strlen($query[LANGID]) > 0) |
||
$langId = $ |
$langId = $query[LANGID] ; |
||
⚫ | |||
else |
|||
$keys = array_keys($_GET) ; |
|||
foreach($query as $key => $value) |
|||
if(count($keys) > 0 && strlen($keys[0]) > 0) $langId = $keys[0] ; |
|||
if(strlen($value) == 0) { |
|||
⚫ | |||
$query[LANGID] = $key ; |
|||
$langId = $key ; |
|||
unset($query[$key]) ; |
|||
break ; |
|||
} |
|||
if(array_key_exists(LANGID, $query)) |
|||
unset($query[LANGID]) ; |
|||
$subfix = http_build_query($query) ; |
|||
} |
} |
||
return |
return $langId ; |
||
} |
} |
||
Line 67: | Line 90: | ||
global $langID ; |
global $langID ; |
||
if($url == $langID) { |
if($url == $langID) { |
||
if(!@$this->loadHTMLFile($this->url = |
if(!@$this->loadHTMLFile($this->url = pageURL($langID))) |
||
if(!@$this->loadHTMLFile($this->url = |
if(!@$this->loadHTMLFile($this->url = pageURL(myDecode($langID)))) |
||
$this->ok = FALSE ; |
$this->ok = FALSE ; |
||
if($this->ok) $this->context = $this->getElementById($id) ; |
if($this->ok) $this->context = $this->getElementById($id) ; |
||
Line 155: | Line 178: | ||
for($i = 0 ; $i < $lang->tds->length ; $i++) { |
for($i = 0 ; $i < $lang->tds->length ; $i++) { |
||
$td = $lang->tds->item($i) ; |
$td = $lang->tds->item($i) ; |
||
$td->setAttribute("width", " |
$td->setAttribute("width", intval(100/$lang->tds->length) . "%") ; |
||
$td->setAttribute("valign", "top") ; |
$td->setAttribute("valign", "top") ; |
||
$ul = NULL ; |
$ul = NULL ; |
||
Line 214: | Line 237: | ||
$lang = new Page($langID, 'mw-pages') ; |
$lang = new Page($langID, 'mw-pages') ; |
||
if($lang->ok) { |
if($lang->ok) { |
||
$task = new Page(TaskURL, 'mw-pages') ; |
$task = new Page(pageURL(TaskURL), 'mw-pages') ; |
||
if($task->ok) |
if($task->ok) |
||
$lang->prepare($task->lnk) ; |
$lang->prepare($task->lnk) ; |
||
Line 222: | Line 245: | ||
if($langID != NA && $lang->ok && $task->ok) { |
if($langID != NA && $lang->ok && $task->ok) { |
||
linkText($lang->hdr, 'Not Completed Tasks by ', $lang->url, $IDLang, NULL) ; |
linkText($lang->hdr, 'Not Completed Tasks by ', $lang->url, $IDLang, NULL) ; |
||
linkText($lang->hdr, ' ( ', |
linkText($lang->hdr, ' ( ', ScriptURL(NA), 'Other Languages', ' ) ') ; |
||
process_task() ; |
process_task() ; |
||
echo $lang->toHTML() ; |
echo $lang->toHTML() ; |
||
} else { |
} else { |
||
$list = new Page(ListURL, 'mw-subcategories') ; |
$list = new Page(pageURL(ListURL), 'mw-subcategories') ; |
||
if($list->ok) { |
if($list->ok) { |
||
if($langID == NA) |
if($langID == NA) |
||
Line 249: | Line 272: | ||
?></php> |
?></php> |
||
|} |
|} |
||
Hope it can be a temporary solution. -- [[User:Badmadevil|badmadevil]] |
Hope it can be a temporary solution. -- [[User:Badmadevil|badmadevil]] 12:33, 22 June 2008 (UTC) |