Copie di backup di codice proveniente da EduINAF Tools
This commit is contained in:
parent
3171713ff3
commit
05b1ff6f95
|
@ -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' );
|
|
@ -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;
|
||||||
|
}
|
|
@ -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' );
|
|
@ -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' );
|
|
@ -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' );
|
Loading…
Reference in New Issue