Project

General

Profile

1
//:Puts Edit-Buttons on every page you have rights for. 1=modify page, 2=modify pagesettings, 4=modify sections, or add values to combine buttons.
2
//:Use: [[iEditThisPage?show=7]]. You can format the appearance using CSS-class 'div.iEditThisPage' in your basic-css file
3
// @author: Werner von der Decken
4

    
5
	global $wb;
6
    $oReg   = WbAdaptor::getInstance();
7
    $oDb    = WbDatabase::getInstance();
8
    $oTrans = Translate::getInstance();
9
	$returnvalue = '';
10
	if ($wb->is_authenticated()) {
11
		$is_admin = false;
12
		$page_id = PAGE_ID == 0 ? $wb->default_page_id : PAGE_ID;
13
		$user_id = $wb->get_user_id();
14
		$sql = 'SELECT `admin_users`, `admin_groups` '
15
             . 'FROM `'.$oDb->TablePrefix.'pages` '
16
             . 'WHERE `page_id` = '.$page_id;
17
		if (($rset = $oDb->doQuery($sql)) != null) {
18
			if (($rec = $rset->fetchRow(MYSQL_ASSOC)) != null) {
19
				$is_admin = ($wb->ami_group_member($rec['admin_groups']) ||
20
				            ($wb->is_group_match($user_id, $rec['admin_users'])) );
21
			}
22
		}
23
		if ($is_admin) {
24
			$tpl  = '<a href="'.$oReg->AcpUrl.'pages/%1$s.php?page_id='.$page_id.'" target="_blank" title="%2$s">'
25
			      . '<img src="'.$oReg->ThemeUrl.'images/%3$s_16.png" alt="%2$s" /></a>';
26
			$show = ((!isset($show) || $show == '') ? 1 : (int)$show);
27
			$show = ($show > 7 ? 7 : (int)$show);
28
			$show = ($show < 2 ? 1 : (int)$show );
29
			if ($show & 1) {
30
				$returnvalue .= sprintf($tpl, 'modify', $oTrans->HEADING_MODIFY_PAGE, 'edit');
31
			}
32
			$sys_perm = $wb->get_session('SYSTEM_PERMISSIONS');
33
			if (@is_array($sys_perm)) {
34
				if (($show & 2) && (array_search('pages_settings', $sys_perm)!==false)) {
35
					$returnvalue .= sprintf($tpl, 'settings', $oTrans->HEADING_MODIFY_PAGE_SETTINGS, 'modify');
36
				}
37
				if (($show & 4) && (array_search('pages_modify', $sys_perm)!==false)) {
38
					$returnvalue .= sprintf($tpl, 'sections', $oTrans->HEADING_MANAGE_SECTIONS, 'sections');
39
				}
40
			}
41
			if ($returnvalue != '') {
42
				$returnvalue  = '<div class="iEditThisPage">'.$returnvalue.'</div>';
43
			}
44
		}
45
	}
46
	return($returnvalue == '' ? true : $returnvalue);
(13-13/22)