upgraded mu-plugins
parent
66dc6b5af6
commit
907d6d7294
|
@ -275,28 +275,42 @@ echo '<style type="text/css">
|
|||
}
|
||||
|
||||
/*mis sitios*/
|
||||
#wpadminbar #wp-admin-bar-my-sites {
|
||||
#wpadminbar #wp-admin-bar-my-sites,
|
||||
#wpadminbar #wp-admin-bar-mis-sitios {
|
||||
display: flex;
|
||||
height: 66px;
|
||||
align-items: center;
|
||||
margin-left: 30px;
|
||||
}
|
||||
#wpadminbar #wp-admin-bar-my-sites a,
|
||||
#wpadminbar #wp-admin-bar-my-sites a:before {
|
||||
#wpadminbar #wp-admin-bar-my-sites a:before,
|
||||
#wpadminbar #wp-admin-bar-mis-sitios a,
|
||||
#wpadminbar #wp-admin-bar-mis-sitios a:before {
|
||||
color: #262626!important;
|
||||
}
|
||||
#wpadminbar #wp-admin-bar-my-sites .ab-sub-wrapper a:hover,
|
||||
#wpadminbar #wp-admin-bar-my-sites .ab-sub-wrapper a:hover:before {
|
||||
#wpadminbar #wp-admin-bar-my-sites .ab-sub-wrapper a:hover:before,
|
||||
#wpadminbar #wp-admin-bar-mis-sitios .ab-sub-wrapper a:hover,
|
||||
#wpadminbar #wp-admin-bar-mis-sitios .ab-sub-wrapper a:hover:before {
|
||||
color: '. $primary .'!important;
|
||||
background-color: '. $secondary.';
|
||||
}
|
||||
#wpadminbar #wp-admin-bar-my-sites a.ab-item:before {
|
||||
#wpadminbar #wp-admin-bar-my-sites a.ab-item:before,
|
||||
#wpadminbar #wp-admin-bar-mis-sitios a.ab-item:before {
|
||||
top: 0;
|
||||
font-size: 32px;
|
||||
line-height: 66px;
|
||||
padding: 0;
|
||||
}
|
||||
#wpadminbar #wp-admin-bar-my-sites a.ab-item {
|
||||
#wpadminbar #wp-admin-bar-mis-sitios:before {
|
||||
content: url(' . WPMU_PLUGIN_URL . '/layout.svg);
|
||||
line-height: 1em;
|
||||
}
|
||||
/*#wpadminbar #wp-admin-bar-mis-sitios a.ab-item:before {
|
||||
line-height: 57px;
|
||||
}*/
|
||||
#wpadminbar #wp-admin-bar-my-sites a.ab-item,
|
||||
#wpadminbar #wp-admin-bar-mis-sitios a.ab-item {
|
||||
height: 66px;
|
||||
line-height: 66px;
|
||||
font-size: 16px;
|
||||
|
@ -378,7 +392,7 @@ echo '<style type="text/css">
|
|||
@media screen and (max-width: 782px) {
|
||||
html #wpadminbar {
|
||||
height: 70px;
|
||||
/*position: fixed;*/
|
||||
position: fixed;
|
||||
}
|
||||
.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-item {
|
||||
background-color: '. $bg_color .';
|
||||
|
@ -414,22 +428,8 @@ echo '<style type="text/css">
|
|||
#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .ab-sub-wrapper {
|
||||
top: 50px!important;
|
||||
}
|
||||
|
||||
}
|
||||
@media screen and (max-width: 620px) {
|
||||
#wpadminbar #wp-admin-bar-wp-logo > .ab-item {
|
||||
max-width: 180px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 600px) {
|
||||
#wpbody {
|
||||
padding-top: 0;
|
||||
}
|
||||
html #wpadminbar {
|
||||
position: fixed;
|
||||
}
|
||||
.auto-fold #adminmenu {
|
||||
top: 0;
|
||||
#wpadminbar #wp-admin-bar-mis-sitios a.ab-item {
|
||||
text-indent: -9999px;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 290 KiB |
|
@ -1,6 +1 @@
|
|||
body.page.singular header.entry-header {
|
||||
display: none;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.page.type-page .entry-header { display: none; }
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
if( is_multisite() && current_user_can( 'read' ) ) :
|
||||
|
||||
$user_id = get_current_user_id();
|
||||
|
||||
$title = 'Mis sitios web';
|
||||
|
||||
$blogs = get_blogs_of_user( $user_id );
|
||||
|
||||
?>
|
||||
|
||||
<div class="wrap">
|
||||
<h1 class="wp-heading-inline">
|
||||
<?php
|
||||
echo esc_html( $title );
|
||||
?>
|
||||
</h1>
|
||||
|
||||
<form id="myblogs" method="post">
|
||||
<ul class="my-sites striped">
|
||||
<?php
|
||||
//reset( $blogs );
|
||||
foreach ( $blogs as $user_blog ) {
|
||||
switch_to_blog( $user_blog->userblog_id );
|
||||
|
||||
echo '<li>';
|
||||
echo '<img style="width:100%;height:auto;" alt="screenshot" src="http://s.wordpress.com/mshots/v1/'.urlencode(home_url()).'"/>';
|
||||
echo "<h3>{$user_blog->blogname}</h3>";
|
||||
|
||||
$actions = "<a href='" . esc_url( home_url() ) . "'>" . __( 'Visitar web' ) . '</a>';
|
||||
|
||||
if ( current_user_can( 'read' ) ) {
|
||||
$actions .= " | <a href='" . esc_url( admin_url() ) . "edit.php?post_type=page'>" . __( 'Todas las páginas' ) . '</a>';
|
||||
}
|
||||
|
||||
if ( current_user_can( 'manage_sites' ) ) {
|
||||
$actions .= " | <a href='" . esc_url( admin_url() ) . "network/sites.php?page=publicarweb&id=".$user_blog->userblog_id."'>" . __( 'Publicar web' ) . '</a>';//http://test.wemcor.es/wp-admin/network/sites.php?page=publicarweb&id=1
|
||||
}
|
||||
|
||||
echo "<p class='my-sites-actions'>" . $actions . '</p>';
|
||||
$pages = get_pages(['post_status'=>'publish']);
|
||||
if($pages) {
|
||||
echo '<p style="font-weight:bold;">Páginas del sitio web</p>';
|
||||
foreach($pages as $page) {
|
||||
echo '<p style="padding-left:10px;">'.$page->post_title.' <a href="'.home_url($page->post_name).'">Ver</a> | <a href="'.admin_url().'post.php?post='.$page->ID.'&action=edit">Editar</a></p>';
|
||||
}
|
||||
}
|
||||
echo '</li>';
|
||||
|
||||
restore_current_blog();
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
<?php
|
||||
// añadir botón nuevo sitio web si es teacher o superior
|
||||
if ( current_user_can( 'read' ) ) echo '<p style="margin-top: 40px;"><a href="'.admin_url().'network/site-new.php" class="button button-primary">Añadir nuevo sitio web</a></p>';//<input type="submit" name="add-site" id="add-site" class="button button-primary" value="Añadir sitio">
|
||||
?>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
endif;
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0v24h24v-24h-24zm11 22h-9v-16h9v16zm11 0h-9v-7h9v7zm0-9h-9v-7h9v7z"/></svg>
|
After Width: | Height: | Size: 170 B |
|
@ -43,6 +43,18 @@ function wemcor_add_new_items_admin_bar($admin_bar) {
|
|||
);
|
||||
$admin_bar->add_node( $args );
|
||||
|
||||
//mis sitios
|
||||
$args = array(
|
||||
'parent' => '',
|
||||
'id' => 'mis-sitios',
|
||||
'title' => 'Mis sitios web',
|
||||
'href' => admin_url() . 'admin.php?page=mis-sitios',
|
||||
'meta' => array(
|
||||
'class' => 'mis-sitios'
|
||||
)
|
||||
);
|
||||
$admin_bar->add_node( $args );
|
||||
|
||||
}
|
||||
|
||||
//borramos todos los items de admin bar excepto logo y usuario que lo modificaremos posteriormente. De esta forma prevenimos la carga de ítems extras colocados por otros plugins que s epuedan instalar en un futuro
|
||||
|
@ -58,19 +70,26 @@ function wemcor_remove_menu_admin_bar() {
|
|||
$no_clear_menus = array(
|
||||
'wp-logo',
|
||||
'my-account',
|
||||
'my-sites',
|
||||
'user-actions',
|
||||
'user-info',
|
||||
'edit-profile',
|
||||
'logout',
|
||||
'menu-toggle',
|
||||
'notifications',
|
||||
'dropdown-menu'
|
||||
'dropdown-menu',
|
||||
'mis-sitios',
|
||||
'top-secondary'
|
||||
);
|
||||
|
||||
$all_menus = $wp_admin_bar->get_nodes();
|
||||
check_nodes($no_clear_menus, $all_menus);
|
||||
remove_nodes($no_clear_menus, $all_menus, $wp_admin_bar);
|
||||
|
||||
// current user
|
||||
$user_id = get_current_user_id();
|
||||
$user_data = get_user_by( 'id', $user_id );
|
||||
$user_name = $user_data->display_name;
|
||||
|
||||
// modificación de items existentes
|
||||
$my_account = $wp_admin_bar->get_node( 'my-account' );
|
||||
if($my_account) {
|
||||
/*stdClass Object(
|
||||
|
@ -155,48 +174,12 @@ function wemcor_remove_menu_admin_bar() {
|
|||
|
||||
}
|
||||
|
||||
function check_nodes($no_clear_menus, $all_menus) {
|
||||
global $wp_admin_bar;
|
||||
|
||||
function remove_nodes($no_clear_menus, $all_menus, $wp_admin_bar) {
|
||||
foreach( $all_menus as $menu ) {
|
||||
|
||||
$remove_node = false;
|
||||
|
||||
if( in_array($menu->id, $no_clear_menus) ) continue;
|
||||
|
||||
if( in_array($menu->parent, $no_clear_menus) && $menu->parent != 'wp-logo' ) continue;
|
||||
|
||||
if( empty($menu->parent) && $menu->id == 'top-secondary' ) continue;
|
||||
|
||||
if( empty($menu->parent) || $menu->parent == 'top-secondary' || $menu->parent == 'wp-logo' ) $remove_node = true;
|
||||
|
||||
if( !$remove_node ) {
|
||||
$parent_node = $wp_admin_bar->get_node($menu->parent);
|
||||
$parent_node_parent = $parent_node->parent;
|
||||
$remove_node = check_parents($parent_node_parent, $no_clear_menus);
|
||||
if( ! in_array($menu->id, $no_clear_menus) ) $wp_admin_bar->remove_menu( $menu->id );
|
||||
}
|
||||
}
|
||||
|
||||
if( $remove_node ) $wp_admin_bar->remove_menu( $menu->id );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function check_parents( $parent, $no_clear_menus ) {
|
||||
global $wp_admin_bar;
|
||||
$node = $wp_admin_bar->get_node($parent);
|
||||
|
||||
if( in_array($node->id, $no_clear_menus) && $node->id != 'wp-logo' ) return false;
|
||||
|
||||
if( in_array($node->parent, $no_clear_menus) && $node->parent != 'wp-logo' ) return false;
|
||||
|
||||
if( empty($node->parent) || $node->parent == 'top-secondary' || $node->parent == 'wp-logo' ) return true;
|
||||
|
||||
$parent_node = $wp_admin_bar->get_node($menu->parent);
|
||||
$parent_node_parent = $parent_node->parent;
|
||||
$remove_node = check_parents($parent_node_parent);
|
||||
|
||||
}
|
||||
|
||||
//estilos personalizados admin bar
|
||||
add_action( 'wp_before_admin_bar_render', 'wemcor_custom_styles_admin_bar', 999 );
|
||||
|
@ -346,8 +329,13 @@ function html_menu_apps() {
|
|||
*/
|
||||
$html = '';
|
||||
if(isset($json_data['apps_external'])) $apps_external = $json_data['apps_external'];
|
||||
else $apps_external = false;
|
||||
|
||||
if(isset($json_data['apps_internal'])) $apps_internal = $json_data['apps_internal'];
|
||||
else $apps_internal = false;
|
||||
|
||||
if(isset($json_data['apps_courses'])) $apps_courses = $json['apps_my_courses'];
|
||||
else $apps_courses = false;
|
||||
|
||||
if( $apps_external || $apps_internal || $apps_courses ) $html .= '<div id="wp-admin-bar-menu-apps" class="ab-sub-wrapper">';
|
||||
|
||||
|
@ -411,8 +399,6 @@ function html_menu_apps() {
|
|||
}
|
||||
|
||||
function wemcor_get_url_json() {
|
||||
$path = str_replace('wp.', 'api.', DOMAIN_CURRENT_SITE);
|
||||
return 'https://'.$path.'/json';
|
||||
|
||||
return 'https://api.montseny.digitaldemocratic.net/json';
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ Author URI: https://wemcor.com
|
|||
Text Domain: wemcor-functions
|
||||
*/
|
||||
|
||||
//se usa 'page'. Cambiar 'page' por 'post' si se decide usar sistema de posts en lugar de pages
|
||||
|
||||
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
||||
|
||||
|
@ -15,12 +16,12 @@ add_action( 'wp_enqueue_scripts', 'wemcor_enqueue_styles' );
|
|||
function wemcor_enqueue_styles() {
|
||||
|
||||
wp_enqueue_style( 'wemcor-styles', WPMU_PLUGIN_URL .'/assets/style.css' );
|
||||
wp_enqueue_style( 'wemcor-dynamic-style', WPMU_PLUGIN_URL .'/assets/style.php' );
|
||||
//wp_enqueue_style( 'wemcor-dynamic-style', WPMU_PLUGIN_URL .'/assets/style.php' );
|
||||
}
|
||||
|
||||
|
||||
// quitar títulos de las páginas para que así prevalezca el encabezamiento estilo google site
|
||||
// add_filter( 'the_title', 'remove_page_title' );
|
||||
add_filter( 'the_title', 'remove_page_title' );
|
||||
function remove_page_title() {
|
||||
if( is_page() ) return false;
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ function callback_publicar_web() {
|
|||
$site_name = $current_blog_details->blogname;
|
||||
|
||||
echo '<div class="wrap"><h1 id="edit-site">' . $title . '</h1>
|
||||
<p class="edit-site-actions"><a href="' . esc_url( get_home_url( $id, '/' ) ) . '">Visitar</a> | <a href="' . esc_url( get_admin_url( $id ) ) . '">Escritorio</a></p>';
|
||||
<p class="edit-site-actions"><a href="' . esc_url( get_home_url( $id, '/' ) ) . '">Visitar Web</a> | <a href="' . esc_url( admin_url() ) . 'edit.php?post_type=page">Ver todas las páginas</a></p>';
|
||||
|
||||
// navigation tabs
|
||||
network_edit_site_nav( array(
|
||||
|
|
|
@ -15,8 +15,6 @@ Text Domain: wemcor-patterns
|
|||
* El sistema se encarga de leer dicho directorio para mostrar todos los patterns. Si se desea dar de alta un nuevo pattern tan solo hay que guardar el .json en el directorio especificado
|
||||
* El sistema se encarga de hacer un rename para mostrar nombre del template
|
||||
* Se tienen que guardar en formato .json dentro de la carpeta mu-plugins/templates
|
||||
* Extraer el json a partir de los bloques reutilizables si el servicio que ofrece el pattern no descarga dicho formato
|
||||
* Los patrones de gutenberghub.com requieren el plugin editorplus (https://wordpress.org/plugins/editorplus/)
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -73,5 +71,3 @@ function wemcor_register_pattern( $file ) {
|
|||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|||
*/
|
||||
add_action( 'init', 'wemcor_add_custom_roles', 99 );
|
||||
function wemcor_add_custom_roles() {
|
||||
//Default capabilities for Teacher
|
||||
$capabilities = [
|
||||
//pages
|
||||
'delete_others_pages' => true,
|
||||
|
@ -102,6 +103,9 @@ function wemcor_add_custom_roles() {
|
|||
*/
|
||||
if ( is_multisite() ) add_role( 'teacher', 'Teacher', $capabilities );
|
||||
|
||||
/*
|
||||
* Student
|
||||
*/
|
||||
//modificamos algunas de las capabilities de los argumentos para crear student
|
||||
if ( is_multisite() ) $capabilities['manage_network_users'] = false;
|
||||
if ( is_multisite() ) $capabilities['manage_sites'] = false;
|
||||
|
@ -110,11 +114,36 @@ function wemcor_add_custom_roles() {
|
|||
$capabilities['list_users'] = false;
|
||||
$capabilities['promote_users'] = false;
|
||||
$capabilities['moderate_comments'] = false;
|
||||
if ( is_multisite() ) add_role( 'student', 'Student', $capabilities );
|
||||
|
||||
/*
|
||||
* Student
|
||||
* Manager
|
||||
*/
|
||||
if ( is_multisite() ) add_role( 'student', 'Student', $capabilities );
|
||||
//creamos manager poniendo todas las capblities a true excepto las del array no_caps
|
||||
if ( is_multisite() ) {
|
||||
$no_caps = array(
|
||||
'manage_network_plugins',
|
||||
'manage_network_themes',
|
||||
'upgrade_network',
|
||||
'delete_themes',
|
||||
'edit_theme_options',
|
||||
'edit_themes',
|
||||
'install_themes',
|
||||
'switch_themes',
|
||||
'update_themes',
|
||||
'activate_plugins',
|
||||
'delete_plugins',
|
||||
'edit_plugins',
|
||||
'install_plugins',
|
||||
'update_plugins'
|
||||
);
|
||||
foreach( $capabilities as $key => $value ) {
|
||||
if( in_array( $key, $no_caps) ) $capabilities[$key] = false;
|
||||
else $capabilities[$key] = true;
|
||||
}
|
||||
add_role( 'manager', 'Manager', $capabilities );
|
||||
}
|
||||
$manager = get_role('manager');
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -141,5 +170,7 @@ function wemcor_remove_roles() {
|
|||
remove_role( 'teacher' );
|
||||
//Student
|
||||
remove_role( 'student' );
|
||||
//Manager
|
||||
remove_role( 'manager' );
|
||||
endif;
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
<?php
|
||||
/*
|
||||
Plugin Name: Wemcor Sites
|
||||
Plugin URI:
|
||||
Description: Muestra un dashboard al estilo Google sites con un listado de los sotes disponibles para cada usuario y las páginas creadas
|
||||
Author: Wemcor
|
||||
Author URI: https://wemcor.com
|
||||
Text Domain: wemcor-options
|
||||
*/
|
||||
|
||||
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
||||
|
||||
// añadir menus
|
||||
add_action( 'admin_menu', 'wemcor_add_menu_mis_sitios', 10 );
|
||||
function wemcor_add_menu_mis_sitios() {
|
||||
//mis sitios web
|
||||
add_menu_page(
|
||||
'Mis sitios web',
|
||||
'Mis sitios web',
|
||||
'manage_network',
|
||||
'mis-sitios',
|
||||
'wemcor_mis_sitios_callback',
|
||||
'dashicons-layout',
|
||||
2
|
||||
);
|
||||
|
||||
//administrador red (admin network). Lo sacamos de admin bar y lo ponemos en menu lateral
|
||||
add_menu_page(
|
||||
'Administrador de la red',
|
||||
'Administrador de la red',
|
||||
'create-sites',
|
||||
'network',
|
||||
'',
|
||||
'dashicons-wordpress',
|
||||
1
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function wemcor_mis_sitios_callback() {
|
||||
require_once plugin_dir_path(__FILE__) . 'includes/mis-sitios.php';
|
||||
}
|
||||
|
||||
// Borrar menú escritorio para Teachers y Students
|
||||
add_action( 'admin_init', 'remove_dashboard_menu_according_role' );
|
||||
function remove_dashboard_menu_according_role() {
|
||||
$user = wp_get_current_user();
|
||||
if ( in_array( 'teacher', $user->roles ) || in_array( 'student', $user->roles ) ) remove_menu_page('index.php');
|
||||
|
||||
//remove_menu_page('index.php');
|
||||
}
|
||||
|
||||
|
||||
//cambiar links de adminbar (que vayan a página nueva) site.php my-site.php. Quizás mejor crear un menu nuevo que lleve solo a mis sitios (en lugar del menu de multisite). cambiar nombre de sitios a todos los sitios (solo lo ve el manager)
|
||||
//al hacer click en el icono debe llevar a administrador de la red (el teacher y el manager deben tener permisos) y ver el menu de mis sitios. El student no puede acceder. manager y teacher veria usuarios, mis sitios. no ven escritorio sitios temas plugin ajustes. manager veria tambien sitios
|
||||
//el manager lo ve igual que origen. No verá este menu nuevo. El teacher y el student si que lo ven y hay que añadir el link de publicar o en todo caso una opcion en formato link junto al de dashoboard y pages
|
||||
|
||||
|
||||
|
||||
//mostrar página nueva con query que lea sites del usuario logueado
|
||||
|
||||
//mostrar screenshot dle site
|
||||
|
||||
//mostrar listado de páginas
|
||||
|
||||
//mostrar link a dashboard que lleve a listado de páginas. Crear variable para cambiar a 'pages' or 'post'
|
||||
|
||||
//link a editar sitio
|
||||
|
||||
//redirigir al iniciar sesión a cada usuario a esta página
|
||||
add_filter( 'login_redirect', 'wemcor_redirect_mis_sitios_web' );
|
||||
function wemcor_redirect_mis_sitios_web() {
|
||||
return admin_url() .'/admin.php?page=mis-sitios';//http://test.wemcor.es/wp-admin/?page=mis-sitios
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue