$output = HTMLText::create();
$output ->setValue('<i style="font-size:50px;"pun" style="box-sizing: border-box;">.$this->IconCode.'"></i>');
return $output;
 

.htaccess – Silverstripe splash

On 9 novembre 2018, in Sviluppo, WebServer, by admin

<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).

 

Attivazione WS Carta docente

On 20 gennaio 2017, in Sviluppo, by admin

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);
}

}

?>

 

Silverstripe 3 – Ordinare per chiave multipla

On 19 dicembre 2016, in Sviluppo, by admin

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'))

Tagged with:
 

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.

 

Correzione errori nei contenuti di un DB

On 4 febbraio 2013, in Sviluppo, by admin

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):
  1. 755 in tutte le cartelle e files a partire dalla root.
  2. 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’);