📄 ownerlinkgroups.php
字号:
<?phpdefined('WikyBlog') or die("Not an entry point...");if( !isOwner(true,false) ) return false;global $page,$pageOwner,$dbObject,$lang;$dbObject->links[$lang['links']] = '/Special/'.$pageOwner['username'].'/Links';$dbObject->links[$lang['link_groups']] = $page->formAction = '/Special/'.$pageOwner['username'].'/LinkGroups';$dbObject->links['?'] = 'Link Groups';$page->displayTitle = $lang['link_groups'];class ownerLinkGroups{ var $groupOrder; function ownerLinkGroups(){ global $page,$pageOwner,$dbObject,$lang; $page->css2 = true; $this->groupOrder = array('descending'=>'descending','random'=>'random'); // // act // ob_start(); $show = true; switch($page->userCmd){ case wbStrtolower($lang['add_group']): $this->addGroup(); break; case wbStrtolower($lang['delete']): $this->deleteGroup(); break; case wbStrtolower($lang['edit']): $this->edit(); $show = false; break; case wbStrtolower($lang['save']): $this->save(); break; case 'addform': $this->addForm(); $show = false; break; } if( $show){ $this->showAllGroups(); } $page->contentA[$lang['link_groups']] = wb::get_clean(); } // // Group Management // function save(){ global $lang,$page,$pageOwner; $ownerGroups =& $pageOwner['data2']['groups']; if( empty($_POST['name']) ){ message('INVALID_REQUEST'); return; } $_POST['name'] = htmlspecialchars($_POST['name']); if( !isset($ownerGroups[$_POST['currName']])){ message('INVALID_REQUEST'); return; } if( !empty($_POST['order']) && isset($this->groupOrder[$_POST['order']]) ){ $list['order'] = htmlspecialchars($_POST['order']); }else{ $list['order'] = key($this->groupOrder); } if( !empty($_POST['limit']) && is_numeric($_POST['limit']) ){ $list['limit'] = $_POST['limit']; } $pageOwner['data2']['groups'][$_POST['currName']] = $list; if( $_POST['name'] != $_POST['currName']){ if( isset($pageOwner['data2']['groups'][$_POST['name']]) ){ message('INVALID_REQUEST'); return; } $this->renameGroup($_POST['currName'],$_POST['name']); return; } } function renameGroup($oldName,$newName){ global $pageOwner; if( isset($pageOwner['data2']['links'][$oldName]) ){ $new = array(); foreach($pageOwner['data2']['links'] as $groupName => $linkData){ if( $groupName == $oldName ){ $groupName = $newName; } $new[$groupName] = $linkData; } $pageOwner['data2']['links'] = $new; } $new = array(); foreach($pageOwner['data2']['groups'] as $groupName => $groupData){ if( $groupName == $oldName ){ $groupName = $newName; } $new[$groupName] = $groupData; } $pageOwner['data2']['groups'] = $new; } function edit(){ global $lang,$page,$pageOwner; $page->displayTitle .= ' > '.$lang['edit']; if( !isset($pageOwner['data2']['groups'][$page->cmdArg[0]])){ message('INVALID_REQUEST'); return; } $args = $pageOwner['data2']['groups'][$page->cmdArg[0]]; echo '<input type="hidden" name="currName" value="'.$page->cmdArg[0].'" />'; echo '<table style="margin-right:auto;margin-left:auto;margin-top:3em;">'; echo '<tr><td style="text-align:center;">'; $this->groupForm($args,'save',$page->cmdArg[0]); echo '</td>'; echo '</td></tr></table>'; } function addGroup(){ global $page,$pageOwner; if( empty($_POST['name']) ){ message('INVALID_REQUEST'); return; } $name = htmlspecialchars($_POST['name']); $list = array(); if( !empty($_POST['order']) && isset($this->groupOrder[$_POST['order']]) ){ $list['order'] = htmlspecialchars($_POST['order']); }else{ $list['order'] = key($this->groupOrder); } if( !empty($_POST['limit']) && is_numeric($_POST['limit']) ){ $list['limit'] = $_POST['limit']; } $pageOwner['data2']['groups'][$name] = $list; } function deleteGroup(){ global $page,$pageOwner; if( !isset($pageOwner['data2']['groups'][$page->cmdArg[0]])){ message('INVALID_REQUEST'); return; } $new = array(); foreach($pageOwner['data2']['groups'] as $i => $groupData){ if( $i === $page->cmdArg[0]){ continue; } $new[$i] = $groupData; } $pageOwner['data2']['groups'] = $new; } // // Show // function showAllGroups(){ global $page,$pageOwner,$dbObject,$lang; if( empty($pageOwner['data2']['groups']) ){ echo $lang['empty']; return; } echo '<table class="tableRows" style="width:100%">'; echo '<tr>'; echo '<th>'.$lang['name'].'</th>'; echo '<th>'.$lang['links'].'</th>'; echo '<th>'.$lang['order'].'</th>'; echo '<th>'.$lang['limit'].'</th>'; echo '<th>'.$lang['options'].'</th>'; echo '</tr>'; $classes[] = 'class="tableRowEven" '; $classes[] = 'class="tableRowOdd" '; $i = 0; $count= count($pageOwner['data2']['groups']); foreach($pageOwner['data2']['groups'] as $groupName => $groupData){ echo '<tr '.$classes[($i%2)].'>'; echo '<td>'; echo $groupName; echo '</td>'; echo '<td>'; if( isset($pageOwner['data2']['links'][$groupName]) ){ echo count($pageOwner['data2']['links'][$groupName]); }else{ echo '0'; } echo ' '; echo wbLinks::special('Links?cmd=addform&name='.$groupName,'add_link'); echo '</td>'; echo '<td>'; if( isset($groupData['order']) ){ if( isset($lang[$groupData['order']]) ){ echo $lang[$groupData['order']]; }else{ echo $groupData['order']; } }else{ echo $lang['descending']; } echo '</td>'; echo '<td>'; if( isset($groupData['limit']) ){ echo $groupData['limit']; }else{ echo $lang['unlimited']; } echo '</td>'; echo '<td style="white-space:nowrap">'; echo ' <input type="submit" name="cmd['.$groupName.']" value="'.$lang['edit'].'" />'; echo ' <input type="submit" name="cmd['.$groupName.']" value="'.$lang['delete'].'" />'; echo '</td>'; echo '</tr>'; $i++; } echo '</table>'; echo '<table style="margin-right:auto;margin-left:auto;">'; echo '<tr>'; echo '<td style="text-align:center;">'; echo '<h3>'.$lang['add_group'].'</h3>'; $_POST += array('name'=>''); $this->groupForm($_POST,'add_group',$_POST['name']); echo '</td>'; echo '</td></tr></table>'; } function addForm(){ global $lang; echo '<table style="margin-right:auto;margin-left:auto;">'; echo '<tr>'; echo '<td style="text-align:center;">'; echo '<h3>'.$lang['add_group'].'</h3>'; $this->groupForm($_GET,'add_group',$_GET['name']); echo '</td>'; echo '</td></tr></table>'; } function groupForm($args,$how='add_group',$groupName=''){ global $lang; $args += array('order'=>'','limit'=>''); echo '<table cellspacing="7" class="WBeditArea1">'; echo '<tr>'; echo '<td style="text-align:right"><b>* '.$lang['name'].': </b></td>'; echo '<td><input type="text" name="name" size="50" value="'.htmlspecialchars($groupName).'" />'; echo '</tr>'; echo '<tr>'; echo '<td style="text-align:right"><b> '.$lang['order'].': </b></td>'; echo '<td>'; echo $this->formSelect('order',$this->groupOrder,$args['order']); echo '</tr>'; echo '<tr>'; echo '<td style="text-align:right"><b>'.$lang['limit'].': </b></td>'; echo '<td><input type="text" name="limit" size="10" value="'.htmlspecialchars($args['limit']).'" />'; echo ' <span class="sm">('.$lang['LEAVE_EMPTY'].')</span>'; echo '</tr>'; echo '<tr>'; echo '<td></td>'; echo '<td>'; echo '<input type="submit" name="cmd" value="'.$lang[$how].'" />'; echo ' <input type="submit" name="cmd" value="'.$lang['cancel'].'" />'; echo '</tr>'; echo '</table>'; } function formSelect($name,$values,$selected=null,$useLang=true){ global $lang; $select = '<select name="'.$name.'">'; foreach($values as $key => $value){ if($key == $selected){ $focus = ' selected '; }else{ $focus = ''; } if( $useLang && isset($lang[$value]) ){ $value = $lang[$value]; } $select .= '<option value="'.htmlspecialchars($key).'" '.$focus.'>'.$value.'</option>'; } $select .= '</select>'; return $select; } }new ownerLinkGroups();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -