Copie di backup di codice proveniente da EduINAF Tools

This commit is contained in:
ulaulaman 2021-10-19 17:12:19 +02:00
parent 3171713ff3
commit 05b1ff6f95
5 changed files with 283 additions and 0 deletions

View File

@ -0,0 +1,65 @@
<?php
# shortcode per la creazione della griglia per la pagina degli speciali
function grigliaspeciali($atts) {
global $post;
extract(
shortcode_atts(
array(
'speciale' => null,
'tipo' => null,
),
$atts
)
);
if ( $tipo == null ) {
$q = new WP_Query( array( 'speciali' => $speciale, 'post_type'=> 'post', 'posts_per_page'=>-1 ) );
} else {
$q = new WP_Query( array( 'speciali' => $speciale, 'post_type'=> $tipo, 'posts_per_page'=>-1 ) );
}
$contentblu ='<div class="divTable paleBlueRows">';
if ( $q->have_posts() ) {
while ( $q->have_posts() ) {
$q->the_post();
$titolo = get_the_title();
if ( $tipo == 'post' ) {
if ( function_exists( 'get_coauthors' ) ) {
$autori = coauthors_posts_links(", ", " e ", null, null, false);
} else {
$autori = the_author();
}
} else {
$autori = null;
}
if ( $autori <> null ) {
$auth = '<em>di <strong>'.$autori.'</strong></em><br/>';
} else {
$auth = null;
}
$estratto = get_the_excerpt();
/* griglia con titolo ed estratto: stilizzazione minimale */
$header = '<h4 style="color: #ecb252;">'.$titolo.'</h4>';
/* griglia con titolo ed estratto: formato tabella */
$headerblu = '<div class="divTableHeading"><div class="divTableRow"><div class="divTableHead">'.$titolo.'</div></div></div>';
$contentblu .= $headerblu.'<div class="divTableBody"><div class="divTableRow"><div class="divTableCell">'.$auth.$estratto.'<br/>(<a href="'.get_the_permalink().'" style="color: #1d71b8;">continua</a>)</div></div></div>';
}
$contentblu = $contentblu.'</div>';
/* ripristino */
wp_reset_postdata();
} else {
$contentblu = null;
}
return $contentblu;
}
add_shortcode( 'grigliaspeciali', 'grigliaspeciali' );

View File

@ -0,0 +1,75 @@
<?php
# creazione link esterni con shortcode
# astroEdu
add_shortcode('astroedu', 'astroedu');
function astroedu ($atts, $content = null) {
extract(
shortcode_atts(
array(
'lang' => null,
'code' => null,
),
$atts
)
);
if ( $lang <> null ) {
$link = '<a href="http://astroedu.iau.org/'.$lang.'/activities/'.$code.'/" target="astroedu" style="color: #faaf3f;">'.$content.'</a>';
} else {
$link = '<a href="http://astroedu.iau.org/it/activities/'.$code.'/" target="astroedu" style="color: #faaf3f;">'.$content.'</a>';
}
return $link;
}
# Spacescoop
add_shortcode('spacescoop', 'spacescoop');
function spacescoop ($atts, $content = null) {
extract(
shortcode_atts(
array(
'lang' => null,
'code' => null,
),
$atts
)
);
if ( $lang <> null ) {
$link = '<a href="http://www.spacescoop.org/'.$lang.'/scoops/'.$code.'/" target="spacescoop" style="color: #03709c">'.$content.'</a>';
} else {
$link = '<a href="http://www.spacescoop.org/it/scoops/'.$code.'/" target="spacescoop" style="color: #03709c">'.$content.'</a>';
}
return $link;
}
# Sapere
add_shortcode('sapere', 'sapere');
function sapere ($atts, $content = null) {
extract(
shortcode_atts(
array(
'url' => null,
'num' => null,
'data' => null,
'doi' => null,
),
$atts
)
);
if ( $doi <> null )
{$link = '<p><em>Estratto dall\'articolo "<a href="'.$url.' target="sapere">'.$content.'</a>" uscito su Sapere n.'.$num.' di '.$data.'. doi:<a href="https://dx.doi.org/'.$doi.'" target="doi">'.$doi.'</a></em></p>';}
else
{$link = '<p><em>Estratto dall\'articolo "<a href="'.$url.' target="sapere">'.$content.'</a>" uscito su Sapere n.'.$num.' di '.$data.'</em></p>';}
return $link;
}

View File

@ -0,0 +1,47 @@
<?php
# menu plugin
/** Creazione del menu come sottovoce della dashboard */
function eduinaf_menu() {
add_dashboard_page( 'Edu INAF Tools: pagina di documentazione', 'Edu INAF', 'manage_options', 'eduinaf-top-level-handle', 'eduinaf_toplevel_page' );
}
/** Creazione della pagina di documentazione */
function eduinaf_toplevel_page() {
echo '<h2>Edu INAF Tools</h2>';
echo '<div class="wrap">';
echo '<p>Il plugin aggiunge vari <em>shortcode</em> e codici.</p>';
echo '<h3><em>Shortcode</em> editoriali</h3>';
echo '<p>[astroedu code="..." lang="..."]</p>';
echo '<p>[spacescoop code="..." lang="..."]</p>';
echo '<p>Nel parametro <em>code</em> va inserito il codice numerico relativo all\'attività. Nel parametro <em>lang</em> il codice di localizzazione (it, en, ecc.). Nel caso di assenza di quest\'ultimo parametro, it è inserito di <em>default</em>. Il parametro <em>code</em> è invece necessario per il corretto funzionamento dello <em>shortcode</em>.</p>';
echo '<h3><em>Loop</em> come elenco</h3>';
echo '<p>[postlooptab intro="testo di introduzione al <em>loop</em>" categoria="categoria" tag="tag" pag="numero post"]</p>';
echo '<p>Lo <em>shortcode</em> funziona anche senza specificare alcuno dei parametri richiesti.</p>';
echo '<h3><em>Shortcode</em> delle <em>sidebar</em></h3>';
echo '<ul><li><strong>Didattica</strong>: [sbdidattica]</li>';
echo '<li><strong>Astrofoto</strong>: [sbastrofoto]</li>';
echo '<li><strong>Costellazioni</strong>: [sbcostellazioni]</li>';
echo '<li><strong>Menu costellazioni</strong>: [menucostellazioni]</li>';
echo '<li><strong>Corso base di astronomia</strong>: [sbcorsobase]</li>';
echo '</ul>';
echo '<h3>Griglia di libri</h3>';
echo '<p>Il <em>plugin</em> aggiunge anche uno <em>shortcode</em> che genera una griglia. Esistono due distinte versioni: lo <em>shortcode</em> generico:</p>';
echo '<p>[grigliaeduinaf categoria="..." etichetta="..."]</p>';
echo '<p>in cui almeno uno dei due parametri deve essere specificato.</p>';
echo '<p>Il secondo <em>shortcode</em>, invece, genera una griglia appositamente per i libri:</p>';
echo '<p>[griglialibri etichetta="..."]</p>';
echo '<p>dove il parametro etichetta è, al momento, settato di <em>default</em> sul valore "libri-per-bambini-e-ragazzi" e va utilizzato per distinguere tra le tre differenti sottosezioni delle recensioni</p>';
echo '<h3><em>Loop</em> personalizzati</h3>';
echo '<p>Per realizzare dei <em>loop</em> personalizzati si può utilizzare lo <em>shortcode</em></p>';
echo '<p>[postlooptab intro="Ultimi articoli" pag="5" categoria="..." tag="..." stile="1"]</p>';
echo '<p>Nell\'esempio sono inseriti, laddove presenti, i valori di <em>default</em>.<br/>Per gli stili, è possibile indicare 1 per un elenco in linea con quello del tema, 2 per un elenco con nome dell\'autore e data di pubblicazione, 3 per una griglia di quadrati.</p>';
echo '<h3><em>Shortcode</em> per gli speciali</h3>';
echo '<p>Per la creazione del <em>loop</em> nella pagina di uno speciale:</p>';
echo '<p>[grigliaspeciali speciale="slug speciale" tipologia post"]</p>';
echo '</div>';
}
/** Aggiunta del menu */
add_action( 'admin_menu', 'eduinaf_menu' );

View File

@ -0,0 +1,44 @@
<?php
# metabox per il caricamento di informazioni aggiuntive da utilizzare nella griglia personalizzata di eduinaf relativamente ai libri
# guida: http://themefoundation.com/wordpress-meta-boxes-guide/
# aggiunta del metabox
function eduinaf_book_meta() {
add_meta_box( 'eduinaf_book', __( 'Informazioni aggiuntive', 'eduinaf-textdomain' ), 'eduinaf_book_callback', 'post', 'side' );
}
add_action( 'add_meta_boxes', 'eduinaf_book_meta' );
# costruzione del metabox
function eduinaf_book_callback( $post ) {
wp_nonce_field( basename( __FILE__ ), 'eduinaf__nonce' );
$eduinaf_stored_meta = get_post_meta( $post->ID );
?>
<p>
<label for="meta-titolo" class="eduinaf-row-title"><?php _e( 'Inserisci il titolo del libro', 'eduinaf-textdomain' )?></label>
<input type="text" name="meta-titolo" id="meta-titolo" value="<?php if ( isset ( $eduinaf_stored_meta['meta-titolo'] ) ) echo $eduinaf_stored_meta['meta-titolo'][0]; ?>" />
</p>
<?php
}
# salvataggio campi
function eduinaf_book_meta_save( $post_id ) {
# controlla lo stato del post
$is_autosave = wp_is_post_autosave( $post_id );
$is_revision = wp_is_post_revision( $post_id );
$is_valid_nonce = ( isset( $_POST[ 'eduinaf_nonce' ] ) && wp_verify_nonce( $_POST[ 'eduinaf_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';
# uscita in funzione dello stato
if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
return;
}
# controllo dell'input e sanitizza/salva se necessario
if( isset( $_POST[ 'meta-titolo' ] ) ) {
update_post_meta( $post_id, 'meta-titolo', sanitize_text_field( $_POST[ 'meta-titolo' ] ) );
}
}
add_action( 'save_post', 'eduinaf_book_meta_save' );

View File

@ -0,0 +1,52 @@
<?php
# nuovo shortcode per listare nella barra gli articoli di uno speciale
function tabspeciali($atts) {
global $post;
extract(
shortcode_atts(
array(
'speciale' => 'null',
),
$atts
)
);
#tutti i termini associati all'eventuale speciale associato al post
$terms = get_the_terms ( $post->ID, 'speciali' );
foreach ( $terms as $term ) {
$term_link = get_term_link( $term, 'speciali' );
$toc = $term->slug;
if ( $toc <> $speciale ) {
$content = null;
} else {
$q = new WP_Query( array( 'speciali' => $speciale, 'posts_per_page'=>-1 ) );
$header = '<h4 class="widget-title h6"><span>Gli articoli dello speciale '.$term->name.'</span></h4>';
if ( $q->have_posts() ) {
while ( $q->have_posts() ) {
$q->the_post();
$titolo = get_the_title();
$content .= '<li><a href="'.get_the_permalink().'">'.$titolo.'</a></li>';
}
/* ripristino */
wp_reset_postdata();
}
$content = '<div id="recent-posts-2" class="widget widget_recent_entries">'.$header.'<ul>'.$content.'</ul></div>';
}
}
$content = $content.$after_widget;
if ( get_post_type() == 'post' ) {
$out = $content;
} else {
$out = null;
}
return $out;
}
add_shortcode( 'tabspeciali', 'tabspeciali' );