$output = HTMLText::create();
$output ->setValue('<i style="font-size:50px;"pun" style="box-sizing: border-box;">.$this->IconCode.'"></i>');
return $output;
<IfModule mod_rewrite.c>
# Turn off index.php handling requests to the homepage fixes issue in apache >=2.4
<IfModule mod_dir.c>
DirectoryIndex disabled
</IfModule>
SetEnv HTTP_MOD_REWRITE On
RewriteEngine On
RewriteBase '/'
### REDIRECT WWW DA DECOMMENTARE NON APPENA PRESENTE REIDRECT 2017
#RewriteCond %{HTTP_HOST} !^www\.
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
#RewriteCond %{REQUEST_URI} ^/$
#RewriteRule .* splash/index.html [L]
#RewriteCond %{REQUEST_URI} ^/home$
#RewriteRule .* framework/main.php?url=/ [L]
# Deny access to potentially sensitive files and folders
RewriteRule ^vendor(/|$) - [F,L,NC]
RewriteRule silverstripe-cache(/|$) - [F,L,NC]
RewriteRule composer\.(json|lock) - [F,L,NC]
# Process through SilverStripe if no file with the requested name exists.
# Pass through the original path as a query parameter, and retain the existing parameters.
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* framework/main.php?url=%1 [QSA]
</IfModule>
Devo redirigere shop.piaceremodena.it a www.piaceremodena.it.
Il codice di esempio e’:
RewriteCond %{HTTP_HOST} ^subdomain\.
RewriteRule ^(.*)$ http://fulldomain/$1 [R=301,L]
In questo esempio pratico per ottenere il comportamento desiderato le variabili utlizzate devono avere i seguenti valori:
subdomain = ‘shop’
fulldomain = ‘www.piaceremodena.it’
Nel caso in cui nel file .htaccess sia gia’ presente la regola di redirezione da dominio senza www a dominio con www la nuova regola per il terzo livello va messa prima di quella gia esistente. Diversamente verrebbe ignorata in quanto shop. non contiene www. e quindi si verrebbe redirectati a www.shop. (non esistente).
Creazione certificato DER
openssl req -newkey rsa:2048 -keyout key.der -out req.der -outform DER
Dopo aver uploadato sul portale il file req.der mi e’ permesso di scaricare il file CER fornito dal portale per generare il certificato PEM
openssl x509 –inform der –in xxxxx.cer –out xxxxx.pem
A partire dalla chiave key.der e dal file PEM generato procediamo a creare il certificato P12
openssl pkcs12 -export -inkey xxxxx.der -in xxxxx.pem -out xxxxx.p12
A questo punto a partire dal file P12 generato devo generare il file pem finale da utilizzare nella chiamata SOAP
openssl pkcs12 -in supplied_cert.p12 -out php_soap_cert.pem -clcerts
A questo punto scarico il pacchetto base zip fornito che contiene la guida e il file WSDL con la struttura delle chiamate del WS
https://cartadeldocente.istruzione.it/static/lineeguida-esercenti-cartadeldocente.zip
Carico sullo spazio FTP tutte le chiavi, il file wsdl contenuto nello zip e creo un file .php per effettuare la chiamata di attivazione.
<?php
$lock = 1;
if ($lock == 0) {
$wsdl = "./cartadocente/VerificaVoucher.wsdl"; // Or "http://provider.com/api/api.wsdl"
$options = [
'location' => "https://ws.cartadeldocente.istruzione.it/VerificaVoucherDocWEB/VerificaVoucher",
'local_cert' => "./cartadocente/php_soap_cert.pem",
'passphrase' => "artebambini17",
];
try {
$soapClient = new SoapClient($wsdl, $options);
echo '__getFunctions()<br/><br/>';
print '<pre>';
var_dump($soapClient->__getFunctions());
print '</pre>';
echo '__getTypes()<br/><br/>';
print '<pre>';
var_dump($soapClient->__getTypes());
print '</pre>';
echo '__chiamata()<br/><br/>';
try {
$result = $soapClient->Check(array("checkReq"=>array("tipoOperazione"=>"1","codiceVoucher"=>"11aa22bb")));
if ($result){
print '<pre>';
var_dump($result);
print '</pre>';
/*
object(stdClass)#2 (1) {
["checkResp"]=>
object(stdClass)#3 (5) {
["nominativoBeneficiario"]=>
string(22) "Attivazione effettuata"
["partitaIvaEsercente"]=>
string(11) "02460021203"
["ambito"]=>
string(1) "-"
["bene"]=>
string(1) "-"
["importo"]=>
float(0)
}
}
*/
}
} catch(Exception $e) {
print '<pre>';
var_dump($e);
print '</pre>';
}
} catch(Exception $e) {
var_dump($e);
}
}
?>
Ecco un esempio di come si puo’ impostare la ->sort analogamente alla ->filter per gestire chiavi di ordinamento multiple gestite a cascata.
->sort(Array('ParentID' => 'DESC', 'Sort' => 'ASC'))
sapphire/core/ManifestBuilder.php - riga 198
if($file[0] == '.') {
continue;
}
sapphire/core/Core.php - riga 41
if (defined('E_DEPRECATED')) error_reporting(E_ALL & ~(E_DEPRECATED | E_STRICT));
else error_reporting(E_ALL & ~(E_DEPRECATED | E_STRICT));
Basta inserire nel config del sito questa opzione:
SSViewer::setOption(‘rewriteHashlinks’, false);
Cosi tutti gli <a con href=”#qualcosa” non verranno completati con il link alla pagina corrente.
Ecco alcune query di esempio per tradurre errori ricorrenti nei campi di un db causati da una Collation errata o da testi ai quali era applicato uno stile sbagliato.
UPDATE Page SET Abstract = replace(Abstract, '’', '\'');
UPDATE Page_Live SET Abstract = replace(Abstract, '’', '\'') ;
UPDATE Page SET Abstract = replace(Abstract, 'Ã', 'à') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'Ã', 'à') ;
UPDATE Page SET Abstract = replace(Abstract, 'à¹' , 'ù') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'à¹' , 'ù') ;
UPDATE Page SET Abstract = replace(Abstract, 'ù', 'ù') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'ù', 'ù') ;
UPDATE Page SET Abstract = replace(Abstract, '€œ', '\"') ;
UPDATE Page_Live SET Abstract = replace(Abstract, '€œ', '\"') ;
UPDATE Page SET Abstract = replace(Abstract, 'â€', '\"') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'â€', '\"') ;
UPDATE Page SET Abstract = replace(Abstract, 'è','è') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'è','è') ;
UPDATE Page SET Abstract = replace(Abstract, 'á', 'à') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'á', 'à') ;
UPDATE Page SET Abstract = replace(Abstract, 'à©' , 'è') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'à©' , 'è') ;
UPDATE Page SET Abstract = replace(Abstract, 'à¨' , 'è') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'à¨' , 'è') ;
UPDATE Page SET Abstract = replace(Abstract, '
' , ' ') ;
UPDATE Page_Live SET Abstract = replace(Abstract, '
' , ' ') ;
UPDATE Page SET Abstract = replace(Abstract, 'Â' , ' ') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'Â' , ' ') ;
UPDATE Page SET Abstract = replace(Abstract, 'à²' , 'ò') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'à²' , 'ò') ;
UPDATE Page SET Abstract = replace(Abstract, 'à¬' , 'ì') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'à¬' , 'ì') ;
UPDATE Page SET Abstract = replace(Abstract, 'à¡' , '') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'à¡' , '') ;
UPDATE Page SET Abstract = replace(Abstract, 'â' , '') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'â' , '') ;
UPDATE SiteTree SET Content = replace(Content, '’', '\'');
UPDATE SiteTree_Live SET Content = replace(Content, '’', '\'') ;
UPDATE SiteTree SET Content = replace(Content, 'Ã', 'à') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'Ã', 'à') ;
UPDATE SiteTree SET Content = replace(Content, 'ù', 'ù') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'ù', 'ù') ;
UPDATE SiteTree SET Content = replace(Content, '€œ', '\"') ;
UPDATE SiteTree_Live SET Content = replace(Content, '€œ', '\"') ;
UPDATE SiteTree SET Content = replace(Content, 'â€', '\"') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'â€', '\"') ;
UPDATE SiteTree SET Content = replace(Content, 'è','è') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'è','è') ;
UPDATE SiteTree SET Content = replace(Content, 'á', 'à') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'á', 'à') ;
UPDATE SiteTree SET Content = replace(Content, 'à©' , 'è') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'à©' , 'è') ;
UPDATE SiteTree SET Content = replace(Content, 'à¨' , 'è') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'à¨' , 'è') ;
UPDATE SiteTree SET Content = replace(Content, 'à¹' , 'ù') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'à¹' , 'ù') ;
UPDATE SiteTree SET Content = replace(Content, '
' , ' ') ;
UPDATE SiteTree_Live SET Content = replace(Content, '
' , ' ') ;
UPDATE SiteTree SET Content = replace(Content, 'Â' , ' ') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'Â' , ' ') ;
UPDATE SiteTree SET Content = replace(Content, 'à²' , 'ò') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'à²' , 'ò') ;
UPDATE SiteTree SET Content = replace(Content, 'à¬' , 'ì') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'à¬' , 'ì') ;
UPDATE SiteTree SET Content = replace(Content, 'à¡' , '') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'à¡' , '') ;
UPDATE SiteTree SET Content = replace(Content, 'â' , '') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'â' , '') ;
UPDATE SiteTree SET Title = replace(Title , 'aÌ€', 'à') ;
UPDATE SiteTree_Live SET Title = replace(Title , 'aÌ€', 'à') ;
UPDATE Page SET Abstract = replace(Abstract, 'margin-top: 0.34cm; margin-bottom: 0.34cm; background: #ffffff;
line-height: 100%' , '') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'margin-top: 0.34cm; margin-bottom: 0.34cm; background: #ffffff;
line-height: 100%' , '') ;
UPDATE Page SET Abstract = replace(Abstract, 'margin-bottom: 0cm; line-height: 100%' , '') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'margin-bottom: 0cm; line-height: 100%' , '') ;
UPDATE Page SET Abstract = replace(Abstract, 'margin-bottom: 0cm; line-height: 0.37cm;' , '') ;
UPDATE Page_Live SET Abstract = replace(Abstract, 'margin-bottom: 0cm; line-height: 0.37cm;' , '') ;
UPDATE SiteTree SET Content = replace(Content, 'margin-top: 0.34cm; margin-bottom: 0.34cm; background: #ffffff;
line-height: 100%' , '') ;
UPDATE SiteTree_Live SET Content = replace(Content, 'margin-top: 0.34cm; margin-bottom: 0.34cm; background: #ffffff;
line-height: 100%' , '') ;
All’interno del file .htaccess:
<IfModule mod_rewrite.c>
SetEnv HTTP_MOD_REWRITE On
RewriteEngine On
RewriteRule ^NOME_CARTELLA - [L,NC]
RewriteBase /
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L]
</IfModule>
Migrare tutti i dati da uno spazio all'altro.Migrare il DB da un server db all'altro.Aggiornare i permessi (se in sistema linux):
755 in tutte le cartelle e files a partire dalla root.777 nella cartella wp-content/uploads
Modificare i dati all'interno di wp-config.php in modo che tutto sia corretto.Effettuare le query sottostanti in un editor di esecuzione query SQL nel server di destinazione, una volta connessi al DB destinazion:
UPDATE wp_options SET option_value = replace(option_value, ‘http://OLDSITE’ , ‘http://NEWSITE’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
UPDATE wp_posts SET guid = replace(guid, ‘http://OLDSITE’,'http://NEWSITE’);
UPDATE wp_posts SET post_content = replace(post_content, ‘http://OLDSITE’,'http://NEWSITE’);
UPDATE wp_postmeta SET meta_value = replace(meta_value, ‘http://OLDSITE’,'http://NEWSITE’);