PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Themes / DragDrop / MemberDirectory / Gerbera.php
wp-user-avatar / src / Themes / DragDrop / MemberDirectory Last commit date
DefaultTemplate.php 7 months ago Gerbera.php 7 months ago
Gerbera.php
184 lines
1 <?php
2
3 namespace ProfilePress\Core\Themes\DragDrop\MemberDirectory;
4
5 use ProfilePress\Core\Admin\SettingsPages\DragDropBuilder\DragDropBuilder;
6 use ProfilePress\Core\ShortcodeParser\Builder\FrontendProfileBuilder;
7 use ProfilePress\Core\Themes\DragDrop\AbstractMemberDirectoryTheme;
8 use ProfilePress\Core\Admin\SettingsPages\DragDropBuilder\Fields;
9
10 class Gerbera extends AbstractMemberDirectoryTheme
11 {
12 public static function default_field_listing()
13 {
14 Fields\Init::init();
15 $standard_fields = DragDropBuilder::get_instance()->standard_fields();
16
17 return [
18 $standard_fields['profile-display-name'],
19 $standard_fields['profile-bio'],
20 ];
21 }
22
23 public function default_metabox_settings()
24 {
25 $data = parent::default_metabox_settings();
26 $data['ppress_md_gerbera_profile_picture'] = 'true';
27 $data['ppress_md_gerbera_cover_image'] = 'true';
28 $data['ppress_md_gerbera_text_color'] = '#999999';
29 $data['ppress_md_gerbera_display_name_color'] = '#444444';
30 $data['ppress_md_gerbera_avatar_border_color'] = '#ffffff';
31 $data['ppress_md_gerbera_background_color'] = '#ffffff';
32 $data['ppress_md_gerbera_border_color'] = '#dddddd';
33
34 return $data;
35 }
36
37 public function appearance_settings($settings)
38 {
39 $settings = parent::appearance_settings($settings);
40
41 $settings[] = [
42 'id' => 'ppress_md_gerbera_profile_picture',
43 'type' => 'checkbox',
44 'label' => esc_html__('Enable Profile Picture', 'wp-user-avatar'),
45 'priority' => 15
46 ];
47
48 return $settings;
49 }
50
51 public function metabox_settings($settings, $form_type, $DragDropBuilderInstance)
52 {
53 $appearance_settings = $settings['appearance'];
54
55 unset($settings['appearance']);
56
57 $new_settings['appearance'] = $appearance_settings;
58
59 $new_settings = array_merge($new_settings, parent::metabox_settings($settings, $form_type, $DragDropBuilderInstance));
60
61 return array_merge($new_settings, $settings);
62 }
63
64 public function form_wrapper_class()
65 {
66 return 'pppress_md_gerbera';
67 }
68
69 /**
70 * @return false|string|void
71 */
72 public function directory_structure()
73 {
74 global $ppress_frontend_profile_user_obj;
75
76 $wp_user_query = $this->wp_user_query();
77
78 $profile_picture_enabled = $this->get_meta('ppress_md_gerbera_profile_picture') == 'true';
79
80 echo '<div class="pppress_md_gerbera_members">';
81
82 /** @var \WP_User $user */
83 foreach ($wp_user_query['users'] as $user) :
84
85 $ppress_frontend_profile_user_obj = $user;
86
87 new FrontendProfileBuilder($user);
88
89 $profile_url = ppress_get_frontend_profile_url($user->ID);
90
91 // important we parse immediately because FrontendProfileBuilder resets for every user.
92 $display_name = do_shortcode('[profile-display-name]', true);
93
94 $user_roles_class = implode(' ', (array) $user->roles);
95 ?>
96
97 <div class="pppress_md_gerbera_members-item <?php echo $user_roles_class; ?>">
98
99 <?php if ($profile_picture_enabled) : ?>
100 <div class="pppress_md_gerbera_members_avatar">
101 <a href="<?= esc_url($profile_url) ?>" title="<?= esc_attr($display_name) ?>">
102 [pp-user-avatar user="<?= $user->ID ?>" size=256]
103 </a>
104 </div>
105 <?php endif; ?>
106
107 <?php echo $this->directory_listing($user->ID)->forge()->output(); ?>
108 </div>
109
110 <?php endforeach;
111
112 echo '</div>';
113 }
114
115 public function form_css()
116 {
117 $form_id = $this->form_id;
118 $form_type = $this->form_type;
119
120 return parent::form_css() . <<<CSS
121 #pp-$form_type-$form_id.ppress-md-default * {
122 -webkit-box-sizing: border-box;
123 -moz-box-sizing: border-box;
124 box-sizing: border-box;
125 -webkit-font-smoothing: antialiased !important;
126 -moz-osx-font-smoothing: grayscale !important;
127 }
128
129 .pppress_md_gerbera_members {
130 grid-template-columns: 1fr 1fr 1fr 1fr;
131 display: grid;
132 grid-column-gap: 2rem;
133 grid-row-gap: 5rem;
134 text-align: center;
135 }
136
137 .ppressui960 .pppress_md_gerbera_members {
138 grid-template-columns: 1fr 1fr 1fr;
139 }
140
141 .ppressui800 .pppress_md_gerbera_members {
142 grid-template-columns: 1fr 1fr;
143 }
144
145 .ppressui500 .pppress_md_gerbera_members,
146 .ppressui340 .pppress_md_gerbera_members {
147 grid-template-columns: 1fr;
148 }
149
150 .pppress_md_gerbera_members-item {
151 word-break: break-word;
152 }
153
154 .pppress_md_gerbera_members_avatar img {
155 border-radius: 50%;
156 width: 200px;
157 height: auto;
158 }
159
160 .ppress-md-profile-item-wrap.profile-display-name {
161 font-size: 18px;
162 font-weight: 700;
163 }
164
165 .ppress-md-profile-item-wrap {
166 margin: 0 0 5px;
167 line-height: 26px;
168 }
169
170 .pppress_md_gerbera_members_avatar {
171 margin: 0 0 10px;
172 }
173
174 .ppress-md-profile-item-wrap *,
175 .ppress-md-profile-item-title {
176 display: inline;
177 }
178 .ppress-md-profile-item-title {
179 font-weight: bold;
180 }
181
182 CSS;
183 }
184 }