aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module/Settings/Channel_home.php
blob: 388b709426ac8543e64aeb1245d309c3614a3278 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php

namespace Zotlabs\Module\Settings;

use Zotlabs\Lib\Libsync;

require_once('include/menu.php');

class Channel_home {

	function post() {

		$module = substr(strrchr(strtolower(static::class), '\\'), 1);

		check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);

		$features = get_module_features($module);

		process_module_features_post(local_channel(), $features, $_POST);

		$channel_divmore_height = ((x($_POST,'channel_divmore_height')) ? intval($_POST['channel_divmore_height']) : 400);
		if($channel_divmore_height < 50)
			$channel_divmore_height = 50;
		set_pconfig(local_channel(),'system','channel_divmore_height', $channel_divmore_height);

		$channel_menu = ((x($_POST['channel_menu'])) ? htmlspecialchars_decode(trim($_POST['channel_menu']),ENT_QUOTES) : '');
		set_pconfig(local_channel(),'system','channel_menu',$channel_menu);

		Libsync::build_sync_packet();

		if(isset($_POST['rpath']) && is_local_url($_POST['rpath']))
			goaway($_POST['rpath']);

		return;
	}

	function get() {

		$module = substr(strrchr(strtolower(static::class), '\\'), 1);

		$features = get_module_features($module);
		$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');

		$channel_divmore_height = [
			'channel_divmore_height',
			t('Max height of content (in pixels)'),
			((get_pconfig(local_channel(),'system','channel_divmore_height')) ? get_pconfig(local_channel(),'system','channel_divmore_height') : 400),
			t('Click to expand content exceeding this height')
		];

		$menus = menu_list(local_channel());
		if($menus) {
			$current = get_pconfig(local_channel(),'system','channel_menu');
			$menu[] = '';
			foreach($menus as $m) {
				$menu[$m['menu_name']] = htmlspecialchars($m['menu_name'],ENT_COMPAT,'UTF-8');
			}

			$menu_select = [
				'channel_menu',
				t('Personal menu to display in your channel pages'),
				$current,
				'',
				$menu
			];
		}

		$extra_settings_html = replace_macros(get_markup_template('field_input.tpl'),
			[
				'$field' => $channel_divmore_height
			]
		);

		if($menu) {
			$extra_settings_html .= replace_macros(get_markup_template('field_select.tpl'),
				[
					'$field' => $menu_select
				]
			);
		}

		$tpl = get_markup_template("settings_module.tpl");

		return replace_macros($tpl, array(
			'$rpath' => escape_url($rpath),
			'$action_url' => 'settings/' . $module,
			'$form_security_token' => get_form_security_token('settings_' . $module),
			'$title' => t('Channel Home Settings'),
			'$features'  => process_module_features_get(local_channel(), $features),
			'$extra_settings_html' => $extra_settings_html,
			'$submit'    => t('Submit')
		));
	}
}