if (!defined('ABSPATH')) die('No direct access.'); /** * Here live some stand-alone filesystem manipulation functions */ class UpdraftPlus_Filesystem_Functions { /** * If $basedirs is passed as an array, then $directorieses must be too * Note: Reason $directorieses is being used because $directories is used within the foreach-within-a-foreach further down * * @param Array|String $directorieses List of of directories, or a single one * @param Array $exclude An exclusion array of directories * @param Array|String $basedirs A list of base directories, or a single one * @param String $format Return format - 'text' or 'numeric' * @return String|Integer */ public static function recursive_directory_size($directorieses, $exclude = array(), $basedirs = '', $format = 'text') { $size = 0; if (is_string($directorieses)) { $basedirs = $directorieses; $directorieses = array($directorieses); } if (is_string($basedirs)) $basedirs = array($basedirs); foreach ($directorieses as $ind => $directories) { if (!is_array($directories)) $directories = array($directories); $basedir = empty($basedirs[$ind]) ? $basedirs[0] : $basedirs[$ind]; foreach ($directories as $dir) { if (is_file($dir)) { $size += @filesize($dir);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. } else { $suffix = ('' != $basedir) ? ((0 === strpos($dir, $basedir.'/')) ? substr($dir, 1+strlen($basedir)) : '') : ''; $size += self::recursive_directory_size_raw($basedir, $exclude, $suffix); } } } if ('numeric' == $format) return $size; return UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($size); } /** * Ensure that WP_Filesystem is instantiated and functional. Otherwise, outputs necessary HTML and dies. * * @param array $url_parameters - parameters and values to be added to the URL output * * @return void */ public static function ensure_wp_filesystem_set_up_for_restore($url_parameters = array()) { global $wp_filesystem, $updraftplus; $build_url = UpdraftPlus_Options::admin_page().'?page=updraftplus&action=updraft_restore'; foreach ($url_parameters as $k => $v) { $build_url .= '&'.$k.'='.$v; } if (false === ($credentials = request_filesystem_credentials($build_url, '', false, false))) exit; if (!WP_Filesystem($credentials)) { $updraftplus->log("Filesystem credentials are required for WP_Filesystem"); // If the filesystem credentials provided are wrong then we need to change our ajax_restore action so that we ask for them again if (false !== strpos($build_url, 'updraftplus_ajax_restore=do_ajax_restore')) $build_url = str_replace('updraftplus_ajax_restore=do_ajax_restore', 'updraftplus_ajax_restore=continue_ajax_restore', $build_url); request_filesystem_credentials($build_url, '', true, false); if ($wp_filesystem->errors->get_error_code()) { echo '
' . esc_html__('Why am I seeing this?', 'updraftplus') . '
'; echo '%s. Without it, new thumbnail images can't be generated.", 'regenerate-thumbnails' ),
_wp_relative_upload_path( $this->fullsizepath )
),
array(
'status' => 404,
'fullsizepath' => _wp_relative_upload_path( $this->fullsizepath ),
'attachment' => $this->attachment,
)
);
$this->fullsizepath = $error;
}
return $this->fullsizepath;
}
/**
* Regenerate the thumbnails for this instance's attachment.
*
* @since 3.0.0
*
* @param array|string $args {
* Optional. Array or string of arguments for thumbnail regeneration.
*
* @type bool $only_regenerate_missing_thumbnails Skip regenerating existing thumbnail files. Default true.
* @type bool $delete_unregistered_thumbnail_files Delete any thumbnail sizes that are no longer registered. Default false.
* }
*
* @return mixed|WP_Error Metadata for attachment (see wp_generate_attachment_metadata()), or WP_Error on error.
*/
public function regenerate( $args = array() ) {
global $wpdb;
$args = wp_parse_args( $args, array(
'only_regenerate_missing_thumbnails' => true,
'delete_unregistered_thumbnail_files' => false,
) );
$fullsizepath = $this->get_fullsizepath();
if ( is_wp_error( $fullsizepath ) ) {
$fullsizepath->add_data( array( 'attachment' => $this->attachment ) );
return $fullsizepath;
}
$this->old_metadata = wp_get_attachment_metadata( $this->attachment->ID );
if ( $args['only_regenerate_missing_thumbnails'] ) {
add_filter( 'intermediate_image_sizes_advanced', array( $this, 'filter_image_sizes_to_only_missing_thumbnails' ), 10, 2 );
}
require_once( ABSPATH . 'wp-admin/includes/admin.php' );
$new_metadata = wp_generate_attachment_metadata( $this->attachment->ID, $fullsizepath );
if ( $args['only_regenerate_missing_thumbnails'] ) {
// Thumbnail sizes that existed were removed and need to be added back to the metadata.
foreach ( $this->skipped_thumbnails as $skipped_thumbnail ) {
if ( ! empty( $this->old_metadata['sizes'][ $skipped_thumbnail ] ) ) {
$new_metadata['sizes'][ $skipped_thumbnail ] = $this->old_metadata['sizes'][ $skipped_thumbnail ];
}
}
$this->skipped_thumbnails = array();
remove_filter( 'intermediate_image_sizes_advanced', array( $this, 'filter_image_sizes_to_only_missing_thumbnails' ), 10 );
}
$wp_upload_dir = dirname( $fullsizepath ) . DIRECTORY_SEPARATOR;
if ( $args['delete_unregistered_thumbnail_files'] ) {
// Delete old sizes that are still in the metadata.
$intermediate_image_sizes = get_intermediate_image_sizes();
foreach ( $this->old_metadata['sizes'] as $old_size => $old_size_data ) {
if ( in_array( $old_size, $intermediate_image_sizes ) ) {
continue;
}
wp_delete_file( $wp_upload_dir . $old_size_data['file'] );
unset( $new_metadata['sizes'][ $old_size ] );
}
$relative_path = dirname( $new_metadata['file'] ) . DIRECTORY_SEPARATOR;
// It's possible to upload an image with a filename like image-123x456.jpg and it shouldn't be deleted.
$whitelist = $wpdb->get_col( $wpdb->prepare( "
SELECT
meta_value
FROM
{$wpdb->postmeta}
WHERE
meta_key = '_wp_attached_file'
AND meta_value REGEXP %s
/* Regenerate Thumbnails */
",
'^' . preg_quote( $relative_path ) . '[^' . preg_quote( DIRECTORY_SEPARATOR ) . ']+-[0-9]+x[0-9]+\.'
) );
$whitelist = array_map( 'basename', $whitelist );
$filelist = array();
foreach ( scandir( $wp_upload_dir ) as $file ) {
if ( '.' == $file || '..' == $file || ! is_file( $wp_upload_dir . $file ) ) {
continue;
}
$filelist[] = $file;
}
$registered_thumbnails = array();
foreach ( $new_metadata['sizes'] as $size ) {
$registered_thumbnails[] = $size['file'];
}
$fullsize_parts = pathinfo( $fullsizepath );
foreach ( $filelist as $file ) {
if ( in_array( $file, $whitelist ) || in_array( $file, $registered_thumbnails ) ) {
continue;
}
if ( ! preg_match( '#^' . preg_quote( $fullsize_parts['filename'], '#' ) . '-[0-9]+x[0-9]+\.' . preg_quote( $fullsize_parts['extension'], '#' ) . '$#', $file ) ) {
continue;
}
wp_delete_file( $wp_upload_dir . $file );
}
} elseif ( ! empty( $this->old_metadata ) && ! empty( $this->old_metadata['sizes'] ) && is_array( $this->old_metadata['sizes'] ) ) {
// If not deleting, rename any size conflicts to avoid them being lost if the file still exists.
foreach ( $this->old_metadata['sizes'] as $old_size => $old_size_data ) {
if ( empty( $new_metadata['sizes'][ $old_size ] ) ) {
$new_metadata['sizes'][ $old_size ] = $this->old_metadata['sizes'][ $old_size ];
continue;
}
$new_size_data = $new_metadata['sizes'][ $old_size ];
if (
$new_size_data['width'] !== $old_size_data['width']
&& $new_size_data['height'] !== $old_size_data['height']
&& file_exists( $wp_upload_dir . $old_size_data['file'] )
) {
$new_metadata['sizes'][ $old_size . '_old_' . $old_size_data['width'] . 'x' . $old_size_data['height'] ] = $old_size_data;
}
}
}
wp_update_attachment_metadata( $this->attachment->ID, $new_metadata );
return $new_metadata;
}
/**
* Filters the list of thumbnail sizes to only include those which have missing files.
*
* @since 3.0.0
*
* @param array $sizes An associative array of registered thumbnail image sizes.
* @param array $fullsize_metadata An associative array of fullsize image metadata: width, height, file.
*
* @return array An associative array of image sizes.
*/
public function filter_image_sizes_to_only_missing_thumbnails( $sizes, $fullsize_metadata ) {
if ( ! $sizes ) {
return $sizes;
}
$fullsizepath = $this->get_fullsizepath();
if ( is_wp_error( $fullsizepath ) ) {
return $sizes;
}
$editor = wp_get_image_editor( $fullsizepath );
if ( is_wp_error( $editor ) ) {
return $sizes;
}
$metadata = $this->old_metadata;
// This is based on WP_Image_Editor_GD::multi_resize() and others.
foreach ( $sizes as $size => $size_data ) {
if ( empty( $metadata['sizes'][ $size ] ) ) {
continue;
}
if ( ! isset( $size_data['width'] ) && ! isset( $size_data['height'] ) ) {
continue;
}
if ( ! isset( $size_data['width'] ) ) {
$size_data['width'] = null;
}
if ( ! isset( $size_data['height'] ) ) {
$size_data['height'] = null;
}
if ( ! isset( $size_data['crop'] ) ) {
$size_data['crop'] = false;
}
$thumbnail = $this->get_thumbnail(
$editor,
$fullsize_metadata['width'],
$fullsize_metadata['height'],
$size_data['width'],
$size_data['height'],
$size_data['crop']
);
// The false check filters out thumbnails that would be larger than the fullsize image.
// The size comparison makes sure that the size is also correct.
if (
false === $thumbnail
|| (
$thumbnail['width'] === $metadata['sizes'][ $size ]['width']
&& $thumbnail['height'] === $metadata['sizes'][ $size ]['height']
&& file_exists( $thumbnail['filename'] )
)
) {
$this->skipped_thumbnails[] = $size;
unset( $sizes[ $size ] );
}
}
/**
* Filters the list of missing thumbnail sizes if you want to add/remove any.
*
* @since 3.1.0
*
* @param array $sizes An associative array of image sizes that are missing.
* @param array $fullsize_metadata An associative array of fullsize image metadata: width, height, file.
* @param object $this The current instance of this class.
*
* @return array An associative array of image sizes.
*/
return apply_filters( 'regenerate_thumbnails_missing_thumbnails', $sizes, $fullsize_metadata, $this );
}
/**
* Generate the thumbnail filename and dimensions for a given set of constraint dimensions.
*
* @since 3.0.0
*
* @param WP_Image_Editor|WP_Error $editor An instance of WP_Image_Editor, as returned by wp_get_image_editor().
* @param int $fullsize_width The width of the fullsize image.
* @param int $fullsize_height The height of the fullsize image.
* @param int $thumbnail_width The width of the thumbnail.
* @param int $thumbnail_height The height of the thumbnail.
* @param bool $crop Whether to crop or not.
*
* @return array|false An array of the filename, thumbnail width, and thumbnail height,
* or false on failure to resize such as the thumbnail being larger than the fullsize image.
*/
public function get_thumbnail( $editor, $fullsize_width, $fullsize_height, $thumbnail_width, $thumbnail_height, $crop ) {
$dims = image_resize_dimensions( $fullsize_width, $fullsize_height, $thumbnail_width, $thumbnail_height, $crop );
if ( ! $dims ) {
return false;
}
list( , , , , $dst_w, $dst_h ) = $dims;
$suffix = "{$dst_w}x{$dst_h}";
$file_ext = strtolower( pathinfo( $this->get_fullsizepath(), PATHINFO_EXTENSION ) );
return array(
'filename' => $editor->generate_filename( $suffix, null, $file_ext ),
'width' => $dst_w,
'height' => $dst_h,
);
}
/**
* Update the post content of any public post types (posts and pages by default)
* that make use of this attachment.
*
* @since 3.0.0
*
* @param array|string $args {
* Optional. Array or string of arguments for controlling the updating.
*
* @type array $post_type The post types to update. Defaults to public post types (posts and pages by default).
* @type array $post_ids Specific post IDs to update as opposed to any that uses the attachment.
* @type int $posts_per_loop How many posts to query at a time to keep memory usage down. You shouldn't need to modify this.
* }
*
* @return array|WP_Error List of post IDs that were modified. The key is the post ID and the value is either the post ID again or a WP_Error object if wp_update_post() failed.
*/
public function update_usages_in_posts( $args = array() ) {
// Temporarily disabled until it can be even better tested for edge cases
return array();
$args = wp_parse_args( $args, array(
'post_type' => array(),
'post_ids' => array(),
'posts_per_loop' => 10,
) );
if ( empty( $args['post_type'] ) ) {
$args['post_type'] = array_values( get_post_types( array( 'public' => true ) ) );
unset( $args['post_type']['attachment'] );
}
$offset = 0;
$posts_updated = array();
while ( true ) {
$posts = get_posts( array(
'numberposts' => $args['posts_per_loop'],
'offset' => $offset,
'orderby' => 'ID',
'order' => 'ASC',
'include' => $args['post_ids'],
'post_type' => $args['post_type'],
's' => 'wp-image-' . $this->attachment->ID,
// For faster queries.
'update_post_meta_cache' => false,
'update_post_term_cache' => false,
) );
if ( ! $posts ) {
break;
}
$offset += $args['posts_per_loop'];
foreach ( $posts as $post ) {
$content = $post->post_content;
$search = array();
$replace = array();
// Find all L'articolo La città dei trulli proviene da Trullo Messapia.
]]>
Graecia quam Troiae divino numine vexit, Omniaque e latis rerum vestigia terris. Velut ego nunc moveor. An quae de prudentia, de cognitione rerum, de coniunctione generis humani, quaeque ab eisdem de temperantia, de modestia, de magnitudine animi, de omni honestate dicuntur? Et tamen quid attinet luxuriosis ullam exceptionem dari aut fingere aliquos, qui, cum luxuriose viverent, a summo philosopho non reprehenderentur eo nomine dumtaxat, cetera caverent?
Uterque enim summo bono fruitur, id est voluptate. Duo Reges: constructio interrete. Nam prius a se poterit quisque discedere quam appetitum earum rerum, quae sibi conducant, amittere. Confecta res esset. Ea enim omnia, quae illi bona dicerent, praeposita esse, non bona, itemque illa, quae in corpore excellerent, stulte antiquos dixisse per se esse expetenda; At vero Callipho et post eum Diodorus, cum is alter voluptatem adamavisset, alter vacuitatem doloris, neuter honestate carere potuit, quae est a nostris laudata maxime.
Hoc dictum in una re latissime patet, ut in omnibus factis re, non teste moveamur. Sed ego in hoc resisto; Iam id ipsum absurdum, maximum malum neglegi. Quid ad utilitatem tantae pecuniae? Prioris generis est docilitas, memoria; Nunc vides, quid faciat. Nec vero umquam summum bonum assequi quisquam posset, si omnia illa, quae sunt extra, quamquam expetenda, summo bono continerentur. Hoc dictum in una re latissime patet, ut in omnibus factis re, non teste moveamur. Haec qui audierit, ut ridere non curet, discedet tamen nihilo firmior ad dolorem ferendum, quam venerat. Illa autem, morbum, egestatem, dolorem, non appello m a l a, sed, si libet, r e i e c t a n e a.
Verum tamen cum de rebus grandioribus dicas, ipsae res verba rapiunt; Quid, si non modo utilitatem tibi nullam afferet, sed iacturae rei familiaris erunt faciendae, labores suscipiendi, adeundum vitae periculum?
Ut aliquid scire se gaudeant? Respondebo me non quaerere, inquam, hoc tempore quid virtus efficere possit, sed quid constanter dicatur, quid ipsum a se dissentiat. Non igitur bene. Id enim ille summum bonum eu)qumi/an et saepe a)qambi/an appellat, id est animum terrore liberum. Tollenda est atque extrahenda radicitus. At vero Callipho et post eum Diodorus, cum is alter voluptatem adamavisset, alter vacuitatem doloris, neuter honestate carere potuit, quae est a nostris laudata maxime. Qui-vere falsone, quaerere mittimus-dicitur oculis se privasse; At vero Callipho et post eum Diodorus, cum is alter voluptatem adamavisset, alter vacuitatem doloris, neuter honestate carere potuit, quae est a nostris laudata maxime. Et hanc quidem primam exigam a te operam, ut audias me quae a te dicta sunt refellentem. Nam cum Academicis incerta luctatio est, qui nihil affirmant et quasi desperata cognitione certi id sequi volunt, quodcumque veri simile videatur. Ita prorsus, inquam; Ut pulsi recurrant? Sed erat aequius Triarium aliquid de dissensione nostra iudicare. Si longus, levis.
Praeteritis, inquit, gaudeo. Atque omnia quidem scire, cuiuscumque modi sint, cupere curiosorum, duci vero maiorum rerum contemplatione ad cupiditatem scientiae summorum virorum est putandum. Hunc igitur finem illi tenuerunt, quodque ego pluribus verbis, illi brevius secundum naturam vivere, hoc iis bonorum videbatur extremum. Ut enim consuetudo loquitur, id solum dicitur honestum, quod est populari fama gloriosum. Moriatur, inquit. Sed hoc summum bonum, quod tertia significatione intellegitur, eaque vita, quae ex summo bono degitur, quia coniuncta ei virtus est. Idque quo magis quidam ita faciunt, ut iure etiam reprehendantur, hoc magis intellegendum est haec ipsa nimia in quibusdam futura non fuisse, nisi quaedam essent modica natura. Ita fit illa conclusio non solum vera, sed ita perspicua, ut dialectici ne rationem quidem reddi putent oportere: si illud, hoc; Quae enim constituta sunt prima naturae, ad ea si voluptas accesserit, unum aliquod accesserit commodum corporis neque eam constitutionem summi boni, quae est proposta, mutaverit. Hunc ipsum Zenonis aiunt esse finem declarantem illud, quod a te dictum est, convenienter naturae vivere. Quo igitur, inquit, modo? Nam voluptatis causa facere omnia, cum, etiamsi nihil consequamur, tamen ipsum illud consilium ita faciendi per se expetendum et honestum et solum bonum sit, nemo dixit.
Quid enim mihi potest esse optatius quam cum Catone, omnium virtutum auctore, de virtutibus disputare?
Non est igitur summum malum dolor. Quibus expositis facilis est coniectura ea maxime esse expetenda ex nostris, quae plurimum habent dignitatis, ut optimae cuiusque partis, quae per se expetatur, virtus sit expetenda maxime. Iam in altera philosophiae parte. Itaque ab iis constitutio illa prima naturae, a qua tu, quoque ordiebare, his prope verbis exponitur: Omnis natura vult esse conservatrix sui, ut et salva sit et in genere conservetur suo. Inde sermone vario sex illa a Dipylo stadia confecimus. Rationis enim perfectio est virtus; Quis istud possit, inquit, negare? Istam voluptatem perpetuam quis potest praestare sapienti? Quanta autem ab illis varietas argumentorum ratione concludentium eorumque cum captiosis interrogationibus dissimilitudo! Quid, quod plurimis locis quasi denuntiant, ut neque sensuum fidem sine ratione nec rationis sensibus exquiramus? Sin autem reliqua appetenda sunt, cur, quod est ultimum rerum appetendarum, id non aut ex omnium earum aut ex plurimarum et maximarum appetitione concluditur? Quamquam non negatis nos intellegere quid sit voluptas, sed quid ille dicat. Hic cum uterque me intueretur seseque ad audiendum significarent paratos, Primum, inquam, deprecor, ne me tamquam philosophum putetis scholam vobis aliquam explicaturum, quod ne in ipsis quidem philosophis magnopere umquam probavi.
L'articolo La città dei trulli proviene da Trullo Messapia.
]]>L'articolo La città bianca proviene da Trullo Messapia.
]]>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ex quo intellegitur idem illud, solum bonum esse, quod honestum sit, idque esse beate vivere: honeste, id est cum virtute, vivere. Stoici restant, ei quidem non unam aliquam aut alteram rem a nobis, sed totam ad se nostram philosophiam transtulerunt.
Qui mos cum a posterioribus non esset retentus, Arcesilas eum revocavit instituitque ut ii, qui se audire vellent, non de se quaererent, sed ipsi dicerent, quid sentirent; Praeclare hoc quidem. Duo Reges: constructio interrete. Haec mirabilia videri intellego, sed cum certe superiora firma ac vera sint, his autem ea consentanea et consequentia, ne de horum quidem est veritate dubitandum. Aut etiam, ut vestitum, sic sententiam habeas aliam domesticam, aliam forensem, ut in fronte ostentatio sit, intus veritas occultetur? Quoniamque in iis rebus, quae neque in virtutibus sunt neque in vitiis, est tamen quiddam, quod usui possit esse, tollendum id non est. Ut aliquid scire se gaudeant? Nam voluptatis causa facere omnia, cum, etiamsi nihil consequamur, tamen ipsum illud consilium ita faciendi per se expetendum et honestum et solum bonum sit, nemo dixit. Esto, fecerit, si ita vis, Torquatus propter suas utilitatesmalo enim dicere quam voluptates, in tanto praesertim viro-, num etiam eius collega P. Quae contraria sunt his, malane? An quae de prudentia, de cognitione rerum, de coniunctione generis humani, quaeque ab eisdem de temperantia, de modestia, de magnitudine animi, de omni honestate dicuntur?
Epicurei num desistunt de isdem, de quibus et ab Epicuro scriptum est et ab antiquis, ad arbitrium suum scribere? Qui autem esse poteris, nisi te amor ipse ceperit?
Ad eos igitur converte te, quaeso. Quae tamen a te agetur non melior, quam illae sunt, quas interdum optines. An obliviscimur, quantopere in audiendo in legendoque moveamur, cum pie, cum amice, cum magno animo aliquid factum cognoscimus? Tubulo putas dicere? Sed et illum, quem nominavi, et ceteros sophistas, ut e Platone intellegi potest, lusos videmus a Socrate. Quos ille, di inmortales, cum omnes artus ardere viderentur, cruciatus perferebat! nec tamen miser esse, quia summum id malum non erat, tantum modo laboriosus videbatur; Dolere malum est: in crucem qui agitur, beatus esse non potest. Quae in controversiam veniunt, de iis, si placet, disseramus. Et homini, qui ceteris animantibus plurimum praestat, praecipue a natura nihil datum esse dicemus? Non dolere, inquam, istud quam vim habeat postea videro; Possumusne hic scire qualis sit, nisi contulerimus inter nos, cum finem bonorum dixerimus, quid finis, quid etiam sit ipsum bonum? Ut enim, inquit, gubernator aeque peccat, si palearum navem evertit et si auri, item aeque peccat, qui parentem et qui servum iniuria verberat.
Me quidem ad altiorem memoriam Oedipodis huc venientis et illo mollissimo carmine quaenam essent ipsa haec loca requirentis species quaedam commovit, inaniter scilicet, sed commovit tamen. Illa tamen simplicia, vestra versuta. Immo alio genere; Itaque non discedit ab eorum curatione, quibus praeposita vitam omnem debet gubernare, ut mirari satis istorum inconstantiam non possim. Perfecto enim et concluso neque virtutibus neque amicitiis usquam locum esse, si ad voluptatem omnia referantur, nihil praeterea est magnopere dicendum. Huc et illuc, Torquate, vos versetis licet, nihil in hac praeclara epistula scriptum ab Epicuro congruens et conveniens decretis eius reperietis. Quoniam enim natura suis omnibus expleri partibus vult, hunc statum corporis per se ipsum expetit, qui est maxime e natura, quae tota perturbatur, si aut aegrum corpus est aut dolet aut, caret viribus. Aut, si nihil malum, nisi quod turpe, inhonestum, indecorum, pravum, flagitiosum, foedum-ut hoc quoque pluribus nominibus insigne faciamus-, quid praeterea dices esse fugiendum?
Nam si quae sunt aliae, falsum est omnis animi voluptates esse e corporis societate. Est enim natura sic generata vis hominis, ut ad omnem virtutem percipiendam facta videatur, ob eamque causam parvi virtutum simulacris, quarum in se habent semina, sine doctrina moventur; In quibus hoc primum est in quo admirer, cur in gravissimis rebus non delectet eos sermo patrius, cum idem fabellas Latinas ad verbum e Graecis expressas non inviti legant. Et si turpitudinem fugimus in statu et motu corporis, quid est cur pulchritudinem non sequamur? Id enim natura desiderat. Poterat autem inpune; Cumque eorum utrumque per se expetendum esse dixissent, virtutes quoque utriusque eorum per se expetendas esse dicebant, et cum animum infinita quadam laude anteponerent corpori, virtutes quoque animi bonis corporis anteponebant.
Nam interdum nimis etiam novit, quippe qui testificetur ne intellegere quidem se posse ubi sit aut quod sit ullum bonum praeter illud, quod cibo et potione et aurium delectatione et obscena voluptate capiatur.
Easdemne res? Si in ipso corpore multa voluptati praeponenda sunt, ut vires, valitudo, velocitas, pulchritudo, quid tandem in animis censes? In motu et in statu corporis nihil inest, quod animadvertendum esse ipsa natura iudicet? Nos beatam vitam non depulsione mali, sed adeptione boni iudicemus, nec eam cessando, sive gaudentem, ut Aristippus, sive non dolentem, ut hic, sed agendo aliquid considerandove quaeramus. In schola desinis. Iure igitur gravissimi philosophi initium summi boni a natura petiverunt et illum appetitum rerum ad naturam accommodatarum ingeneratum putaverunt omnibus, quia continentur ea commendatione naturae, qua se ipsi diligunt. Effluit igitur voluptas corporis et prima quaeque avolat saepiusque relinquit causam paenitendi quam recordandi. Reperiam multos, vel innumerabilis potius, non tam curiosos nec tam molestos, quam vos estis, quibus, quid velim, facile persuadeam. Aut etiam, ut vestitum, sic sententiam habeas aliam domesticam, aliam forensem, ut in fronte ostentatio sit, intus veritas occultetur? Hoc loco tenere se Triarius non potuit. Quem quidem locum comit multa venustate et omni sale idem Lucilius, apud quem praeclare Scaevola: Graecum te, Albuci, quam Romanum atque Sabinum, municipem Ponti, Tritani, centurionum, praeclarorum hominum ac primorum signiferumque, maluisti dici. Tum ille: Finem, inquit, interrogandi, si videtur, quod quidem ego a principio ita me malle dixeram hoc ipsum providens, dialecticas captiones. Equidem, sed audistine modo de Carneade? Esse tantam vim virtutis tantamque, ut ita dicam, auctoritatem honestatis, ut reliqua non illa quidem nulla, sed ita parva sint, ut nulla esse videantur. Sed ad bona praeterita redeamus.
L'articolo La città bianca proviene da Trullo Messapia.
]]>