📄 ownerlinks.php
字号:
<?phpdefined('WikyBlog') or die("Not an entry point...");if( !isOwner(true,false) ) return false;global $page,$pageOwner,$dbObject,$lang;$dbObject->links[$lang['links']] = $page->formAction = '/Special/'.$pageOwner['username'].'/Links';$dbObject->links[$lang['link_groups']] = '/Special/'.$pageOwner['username'].'/LinkGroups';$dbObject->links['?'] = 'Owner Links';$page->displayTitle = $lang['links'];class ownerLinks{ var $templateFile; function ownerLinks(){ global $page,$pageOwner,$dbObject,$lang,$serverName1,$serverName4; $page->css2 = true; $this->groups = array(); if( empty($pageOwner['data2']['links']) ){ $pageOwner['data2']['links'] = array(); $pageOwner['data2']['groups'] = array(); $list = array(); $list[]= array('uri'=>'/','label'=>'Home','desc'=>$serverName1.' home','intern'=>true); $list[]= array('uri'=>'/Help','label'=>'Help','desc'=>'Help','intern'=>true); $list[]= array('uri'=>'/Help','label'=>'Help','desc'=>'Help','intern'=>true); $pageOwner['data2']['links'][$serverName1] = $list; $pageOwner['data2']['groups'][$serverName1] = array(); } // // Template has links area? // $this->whichTemplate(); $this->hasLinks(); // // act // $this->setGroups(); ob_start(); echo '<div style="text-align:right">'; $link = 'javascript:void('; $link .= 'linkpopup=window.open(\''.$serverName4.'/Special/'.$pageOwner['username'].'/Links?cmd=addform'; $link .= '&uri=\'+escape(location.href)+\'&label=\'+escape(document.title)'; $link .= ' ,\'LinkManger\',\'scrollbars=yes,width=750,height=550,left=15,top=15,status=yes,resizable=yes\')'; $link .= ');'; $link .= 'window.focus();linkpopup.focus();'; echo $lang['bookmarklet'].': <a href="'.$link.'">'.$lang['add_link'].'</a>'; echo '</div>'; $show = true; switch($page->userCmd){ case wbStrtolower($lang['add_link']): $this->addLink(); break; case wbStrtolower($lang['delete']): $this->deleteLink(); break; case wbStrtolower($lang['edit']): $this->editLink(); $show = false; break; case wbStrtolower($lang['save']): $this->saveLink(); break; case 'addform': $this->addForm(); $show = false; break; case 'up': $this->moveUp(); break; case 'down': $this->moveDown(); break; case 'groupup': $this->moveGroupUp(); break; case 'groupdown': $this->moveGroupDown(); break; } if( $show){ $this->showAll(); } $page->contentA[$lang['links']] = wb::get_clean(); } // // Group Movement // function moveGroupDown(){ global $page,$pageOwner; if( !isset($pageOwner['data2']['links'][$page->cmdArg[0]])){ message('INVALID_REQUEST'); return false; } $entry = false; $new = array(); foreach($pageOwner['data2']['links'] as $groupName => $groupData){ if($groupName === $page->cmdArg[0]){ $entry = $pageOwner['data2']['links'][$page->cmdArg[0]]; continue; } $new[$groupName] = $groupData; if( $entry ){ $new[$page->cmdArg[0]] = $entry; $entry = false; } } $pageOwner['data2']['links'] = $new; return true; } function moveGroupUp(){ global $page,$pageOwner; if( !isset($pageOwner['data2']['links'][$page->cmdArg[0]])){ message('INVALID_REQUEST'); return; } $old = $pageOwner['data2']['links']; $pageOwner['data2']['links'] = array_reverse($pageOwner['data2']['links'],true); if( !$this->moveGroupDown() ){ $pageOwner['data2']['links'] = $old; return; } $pageOwner['data2']['links'] = array_reverse($pageOwner['data2']['links'],true); } // // Link Management // function addForm(){ global $lang; if( isset($_GET['uri']) ){ $_GET['uri'] = urldecode($_GET['uri']); } if( isset($_GET['label']) ){ $_GET['label'] = urldecode($_GET['label']); } echo '<table style="margin-right:auto;margin-left:auto;">'; echo '<tr>'; echo '<td style="text-align:center;">'; echo '<h3>'.$lang['add_link'].'</h3>'; $_GET += array('name'=>''); $this->linkForm($_GET,'add_link',$_GET['name']); echo '</td>'; echo '</td></tr></table>'; } function editLink(){ global $page,$pageOwner,$lang; $page->displayTitle .= ' > '.$lang['edit']; if( !is_numeric($page->cmdArg[1]) || !isset($pageOwner['data2']['links'][$page->cmdArg[0]])){ message('INVALID_REQUEST'); return; } if( !isset($pageOwner['data2']['links'][$page->cmdArg[0]][$page->cmdArg[1]])){ message('INVALID_REQUEST'); return; } echo '<input type="hidden" name="index" value="'.$page->cmdArg[1].'" />'; echo '<input type="hidden" name="currGroup" value="'.$page->cmdArg[0].'" />'; echo '<table style="margin-right:auto;margin-left:auto;margin-top:3em;">'; echo '<tr><td style="text-align:center;">'; $this->linkForm($pageOwner['data2']['links'][$page->cmdArg[0]][$page->cmdArg[1]],'save',$page->cmdArg[0]); echo '</td></tr></table>'; } function saveLink(){ global $page,$pageOwner; if( !is_numeric($_POST['index']) || !isset($this->groups[$_POST['currGroup']])){ message('INVALID_REQUEST'); return; } if( !isset($this->groups[$_POST['group']]) ){ message('INVALID_REQUEST'); return; } if( $_POST['currGroup'] != $_POST['group']){ unset($pageOwner['data2']['links'][$_POST['currGroup']][$_POST['index']]); $pageOwner['data2']['links'][$_POST['currGroup']] = array_values($pageOwner['data2']['links'][$_POST['currGroup']]); $this->addLink(); return; } $list = array(); $list['uri'] = htmlspecialchars($_POST['uri']); $list['label'] = htmlspecialchars($_POST['label']); if( !empty($_POST['desc']) ){ $list['desc'] = htmlspecialchars($_POST['desc']); } $pageOwner['data2']['links'][$_POST['group']][$_POST['index']] = $list; } function addLink(){ global $page,$pageOwner; if( empty($_POST['uri']) || empty($_POST['label']) || empty($_POST['group']) ){ message('INVALID_REQUEST'); return; } if( !isset($this->groups[$_POST['group']]) ){ message('INVALID_REQUEST'); return; } $pageOwner['data2']['links'][$_POST['group']][] = $this->getLinkInfo($_POST); } function getLinkInfo($args){ global $pageOwner; $list = array(); $list['uri'] = htmlspecialchars($args['uri']); if($args['type']=='internal'){ //Internal if( strpos($args['uri'],'/') !== 0){ $list['uri'] = '/'.$pageOwner['username'].'/'.$list['uri']; } $list['intern'] = true; }elseif( $args['type'] == 'external'){ //External if( strpos($list['uri'],'://')){ //nothing }elseif( strpos($list['uri'],'mailto:') === 0){ //nothing }else{ $list['uri'] = 'http://'.$list['uri']; } }else{ //AutoDetect if( strpos($list['uri'],'://')){ //nothing }elseif( strpos($list['uri'],'mailto:') === 0){ //nothing }elseif( strpos($list['uri'],'/') !== 0){ $list['uri'] = 'http://'.$list['uri']; }else{ $list['intern'] = true; } } $list['label'] = htmlspecialchars($args['label']); if( !empty($args['desc']) ){ $list['desc'] = htmlspecialchars($args['desc']); } return $list; } function deleteLink(){ global $page,$pageOwner; if( !is_numeric($page->cmdArg[1]) ){ message('INVALID_REQUEST'); return; } if( !isset($this->groups[$page->cmdArg[0]]) ){ message('INVALID_REQUEST'); return; } if( (count($pageOwner['data2']['links']) < 2) && (count($pageOwner['data2']['links'][$page->cmdArg[0]]) < 2) ){ return; } unset($pageOwner['data2']['links'][$page->cmdArg[0]][$page->cmdArg[1]]); if( count($pageOwner['data2']['links'][$page->cmdArg[0]]) < 1){ unset($pageOwner['data2']['links'][$page->cmdArg[0]]); return; } $pageOwner['data2']['links'][$page->cmdArg[0]] = array_values($pageOwner['data2']['links'][$page->cmdArg[0]]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -