Project

General

Profile

1 2029 darkviper
//: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 2068 darkviper
	global $wb;
6
    $oReg   = WbAdaptor::getInstance();
7
    $oDb    = WbDatabase::getInstance();
8
    $oTrans = Translate::getInstance();
9 2029 darkviper
	$returnvalue = '';
10 2068 darkviper
	if ($wb->is_authenticated()) {
11 2029 darkviper
		$is_admin = false;
12
		$page_id = PAGE_ID == 0 ? $wb->default_page_id : PAGE_ID;
13
		$user_id = $wb->get_user_id();
14 2068 darkviper
		$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 2029 darkviper
				$is_admin = ($wb->ami_group_member($rec['admin_groups']) ||
20 2068 darkviper
				            ($wb->is_group_match($user_id, $rec['admin_users'])) );
21 2029 darkviper
			}
22
		}
23 2068 darkviper
		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 2029 darkviper
			$show = ((!isset($show) || $show == '') ? 1 : (int)$show);
27
			$show = ($show > 7 ? 7 : (int)$show);
28
			$show = ($show < 2 ? 1 : (int)$show );
29 2068 darkviper
			if ($show & 1) {
30
				$returnvalue .= sprintf($tpl, 'modify', $oTrans->HEADING_MODIFY_PAGE, 'edit');
31 2029 darkviper
			}
32
			$sys_perm = $wb->get_session('SYSTEM_PERMISSIONS');
33 2068 darkviper
			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 2029 darkviper
				}
37 2068 darkviper
				if (($show & 4) && (array_search('pages_modify', $sys_perm)!==false)) {
38
					$returnvalue .= sprintf($tpl, 'sections', $oTrans->HEADING_MANAGE_SECTIONS, 'sections');
39 2029 darkviper
				}
40
			}
41 2068 darkviper
			if ($returnvalue != '') {
42 2029 darkviper
				$returnvalue  = '<div class="iEditThisPage">'.$returnvalue.'</div>';
43
			}
44
		}
45
	}
46
	return($returnvalue == '' ? true : $returnvalue);