comandi per certificato server

cd etc
cd httpd
cd ssl
— creo i file key e crt
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/httpd/ssl/piramide.key -out /etc/httpd/ssl/piramide.crt
— copio i file creati nelle cartelle utilizzate da apache2
cp piramide.crt /etc/pki/tls/certs
cp piramide.key /etc/pki/tls/private
— riavviare apache
service httpd restart



upload del salvataggio in ftp con bash
# Configurazione
HOST="mio-host-o-ip"
USER="nome-utente"
PASS="password"
PATH_RMT="cartella/remota"
FILE="/cartella/locale/nome-del-file-da-trasferire"

# Trasferimento
curl -T $FILE -u $USER:$PASS $HOST/$PATH_RMT


---- come fare una firma in java nel browser - dovrebbe servire per firmare con la chiavetta
http://www.developer.com/java/other/article.php/3587361/Java-Applet-for-Signing-with-a-Smart-Card.htm

sito per certificato : trustico.it
per installare http://nolabnoparty.com/certificato-ssl-apache-virtual-host-centos/

---- per aggiungere e gestire check in grid (potrebbe servirmi per cernita)
http://www.yiiframework.com/wiki/353/working-with-cgridview-in-admin-panel/

---- per impostare dimensione massima upload in php
in serverz e serverbmb impostare php.ini
post_max_size = 60Mb
upload_max_filesize = 60Mb


---- comando da terminaler per collegarsi al cloud
  ssh -l root 95.110.172.12

sito per certificato : trustico.it
per installare http://nolabnoparty.com/certificato-ssl-apache-virtual-host-centos/



- dopo aver creato fatto gii
	
	in module (vedi Prodotti)
		sistemare formato decimali
		sistemare labels
		controllare se search deve tornare solo record con IOSONO=Yii::app()->session['iosono'] 
        eventualmente mettere questa functione (esempio) per controllare dati
	        public function afterValidate() 
	        {
	            if (($this->codice_fiscale == '') && ($this->partita_iva == '')) {
	                $this->addError('codice_fiscale', 'Il codice fiscale o la partita iva devono essere compilati');
	                $this->addError('partita_iva', 'Il codice fiscale o la partita iva devono essere compilati');
	            }
	            parent::afterValidate();
	        }




	in controller (vedi ProdottiController)
		controllare se create deve impostare IOSONO
		creare eventuali Searchxxxx per ricerca in tabelle 

	in view
		sistemare _form 

-----------
per creare template 
http://www.dotemplate.com
http://it.wix.com


-----------------------------------------------------------------------------
http://www.yiiframework.com/extension/ejui-autocomplete-fk-field


per utilizzare EJuiAutoCompleteFkField

    - in database inserire in commento collegamento a tabella decodifica
            CONSTRAINT FOREIGN KEY (KEYCER=nome campo tabella) REFERENCES cer(KEYCER=nome campo tabella decodifica da controllare)

    - in model tabella di decodifica creare funzione che serve per visualizzare la decodifica mettendo i campi che si vogliono
        public function getDecodifica() {
            return $this->KEYCER . ' ' . $this->CLASSCER . ' ' . $this->DESCER . ''; 
        }

    - in FunzioniController mettere il nome della funzione creata nel punto sopra come valore di label e value e come valore di id mettere il codice da prendere

    - in model tabella principale mettere nome della relazione, nome del model di decodifica, campo della tabella principale a cui si applica la relazione 
	public function relations()
	{
                return array(
                    'zKEYCER'=>array(self::BELONGS_TO, 'Cer', 'KEYCER'),
		);
	}

    - in form mettere controllo EJuiAutoCompleteFkField (per esempio vedere zrifiuti/protected/views/prodotti/_forms

---------------------------------------------------------------------------
Aggiornare macchina virtuale su Aruba
    cancellare il contenuto di protected/pdf (contiene pdf creati dslla procedura) se no rimangono con permessi strani 
    comprimere cartella zrifiuti
    collegarsi a webmin (https://95.110.172.12:10000)
    menu Altri - Upload e Donwnload
    tab Carica sul Server
    selezionare lo zip appena creato
    directory di destinazione : /var/www/html
    appartenente all' utente   : root
    appartenente al gruppo     : predefinito
    estrai file zip            : si, dopo elimina
    manda email                : no
    fare upload - apre una nuova finestra che visualizza avanzamento - non toccare niente finchè non ha finito !!!!!
    --
    esportare da mysql database su file in formato SQL
        in opzioni di creazione dell' oggetto segnare Mettere istruzione drop table ......
    crea in download un file .sql
    su webmin menu Server - server di database Mysql
    entrare in zrifiuti
    scegliere tabella fatture_righe e cancellarla (se no da da problemi con tabella collegata fatture)
    bottone Esegui SQL
    tab Run SQL from file
    Da file trasferito e segliere il file .sql appena creato
    bottone Esegui - per un pò no fa niente ma stà lavorando
    alla fine segnala risultato elaborazione
------------------------------

---------- usato per fare campi grid editabili 
https://www.discretelogix.com/enable-in-place-editing-in-yii-grid/
http://www.discretelogix.com/blog/javascript/jquery/enable-in-place-editing-in-yii-grid
--altro non usato
http://x-editable.demopage.ru/


---------- per fare colona scelta in grid 
    $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'moviment-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
        'selectableRows'=>10,
        'columns'=>array(
                array(
                    'id'=>'sel',
                    'header'=>'Sel',
                    'class'=>'CCheckBoxColumn',
                    'selectableRows' => '500',   
                ),
		array('name'=>'FUNZ','filter'=>array('G'=>'Giacenza','A'=>'Ammasso','E'=>'Entrata','U'=>'Uscita','T'=>'Trasporto'),'htmlOptions'=>array('width'=>'90','style'=>'text-align: center ;'),),
		array('name'=>'data_registrazione','header'=>'Data','htmlOptions'=>array('width'=>'70'),),
		array(
			'class'=>'CButtonColumn',
                        'template' => '{update}{delete}',
                        'updateButtonImageUrl'=>'images/modifica.png',
                        'deleteButtonImageUrl'=>'images/cancella.png',
                        'htmlOptions'=>array('width'=>'70'),
		),
	),
));


---------- per fare decodifica in grid --------------------------
<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'fatture-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		//array('name'=>'IOSONO','htmlOptions'=>array('width'=>'100'),),
		array('name'=>'tipo','filter'=>array('F'=>'Fattura','A'=>'Accredito'),'htmlOptions'=>array('width'=>'100'),),
		array('name'=>'numero','htmlOptions'=>array('width'=>'70'),),
		array('name'=>'data','htmlOptions'=>array('width'=>'70'),),
                array(            // decodifica id_cliente
                    'name'=>'id_cliente',
                    'value'=>'trim(Cenprod::model()->find(array("condition" => "id=" . $data->id_cliente,))->Decodifica)',
                ),
		//array('name'=>'tot_impo1','htmlOptions'=>array('width'=>'100'),),
		array('name'=>'totale','htmlOptions'=>array('width'=>'100'),),
		/*
		'tot_iva1',
		'tot_impo2',
		'tot_iva2',
		'tot_impo3',
		'tot_iva3',
		'totale_impo',
		'totale_iva',
		'',
		*/
		array(
			'class'=>'CButtonColumn',
                        'template' => '{update} {delete}',
                        'updateButtonImageUrl'=>'images/modifica.png',
                        'deleteButtonImageUrl'=>'images/cancella.png',
                        'htmlOptions'=>array('width'=>'70'),
		),
	),
));
?>

inserire nel model della tabella di decodifica  
        public function getDecodifica() {
            return $this->RAGSOC . ' - ' . $this->CITTA . ''; 
        }
dove imposto quello che voglio tornare

-----------------------------------------
per mettere un ordinamento in una richiesta tipo 
    $datitarga= CHtml::listData(Targabol::model()->findAll(array("condition"=>'KEYCEPRO="'.$model->VETTORE.'"',"order"=>"TARGA")), 'TARGA', 'TARGA');
che viene unata poi per una listbox notare il punto "order"=>"TARGA"

-----------------------------------------
per avere campo tutto maiuscolo (ad esempio CAP o Codice Fiscale)
<?php echo $form->textField($model,'provincia',array('size'=>3,'maxlength'=>2,'style' => 'text-transform: uppercase')); ?>


-------------------------------------------
sito per colori
http://www.colorschemer.com/online.html


-----------------------------------------------------------------------------

- collegamento con mac tipo putty a dssa
	da terminale digitare
		ssh -l roberto -p 1672 193.206.68.143
	
    comando per dump di un database
       mysqldump -u username -ppassword database_name > dump.sql


- per aggiornare linux

	PROGRAMMI E DATI
		comprimere cdc
		con filezilla collegarsi a DSSA come roberto
		mettere cdc.zip in /home/roberto
		mettere i file di EasyPHP5.3.0\mysql\data\cdc in /home/roberto/cdcdati
		scollegarsi
		collegarsi con putty 
		cancellare la cartella /home/roberto/cdc con il comando rm -rf cdc
		scompattere cdc.zip con il comando unzip -o cdc.zip
		copiare in cartella web con il comando ./copiacdc
		copiare in cartella mysql con il comando ./copiacdcdati
			
	alla fine lanciare il comando ./restart_mysqlapache



---------- creazione dati_formx

	- duplicare da tabella dati_form1
	- mettere i campi che servono
	- creare module con FullModel Generator
        - creare controller e views con FullCrud Generator
	- module (prendere esempio da DatiForm3)
		mettere mio behaviors (e quello presente diventa zzzzbehaviors)
		sistemare campi float aggiungendo 'numberPattern'
		sistemare labels
	- controller (prendere esempio da DatiForm3)
		sistemare $layout e aggiungere $listacontatti
		sistemare accessRules
		sistemare actionUpdate e actionDelete
	- views (prendere esempio da DatiForm3)
		update  mettere stesse modifiche di views di esempio
		_form   togliere i campi ID,id_soggetto,tipo_contatto,id_contatto,posizione_form
			e poi sistemare i vari campi a piacimento
	- aggiungere in tabella tipo_form la nuova form
		
		
		


--------- sistemazione tabella
	- mettere tutti i booleani a bool default 0 not null
		attenzione che in ricerca del module i booleani vengono cercati con AND
		quindi se non volgio la cosa devo commentare i booleani
	- sistemare intestazioni colonne
	- in view/admin mettere solo i campi che voglio e sistemare larghezze delle stesse
	  ed eventualmente ettere filtro per ricerca (vedi view/cer)





---------- per gestione tabelle decodifica (n.b. il campo id non deve essere autoincremento)
	- fare models e controller con gii - FullModel e FullCrud
	- nel model aggiungere id' come 'required' (altrimenti non salva id)
			array('id', 'required'),
			array('id', 'numerical', 'integerOnly'=>true),
                        array('id','unique','message'=>'{attribute}:{value} gi� presente!'),                    

	- nel controller sistemare accessRules e dopo create,update,delete andare a pagina admin

	- viste
		in tutte le viste togliere breadcrumb
		_form	aggiungere campo id
			sostituire indicazioni campi ogbbligatori in inglese con questa riga
			<p class="note"> <?php echo Yii::t('app', 'Fields with'); ?> <span class="required">*</span> <?php echo Yii::t('app', 'are required'); ?>.</p>

		admin	nella grid modificare id con
				array(
		                    'class'=>'CLinkColumn',
		                    'header'=>'Codice',
		                    'labelExpression'=>'$data->id',
		                    'urlExpression'=>'"index.php?r=Patologie/update&id=".$data->id',
		                ),
			aggiungere nell' ultimo punto per i bottoni 
				'template' => '{update} {delete}',
			cos� mette solo i bottoni per update e delete


			come menu solo Nuovo......
		create	come menu solo Gestione......
		update	come menu Nuovo.... / Gestione.....
		view	come menu Nuovo.... / Aggiorna..... / Cancella.... / Gestione.....





------------------------------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------

esempio qyery in mysql per abbinare 2 tabelle
SELECT `autorizz`.* , `autorizz_cer`.`KEYCER`
FROM autorizz LEFT JOIN autorizz_cer ON autorizz.id = `autorizz_cer`.`autorizz`


----- mettere cancellazione CASCADE per tabele collegate
la tabella principale  (tipo FATTURE) deve essere InnoDB e anche a tabella collegata (tipo FATTURE_RIGHE)
nella tabella fatture_righe devo creare un indice non univovo sul campo che fa da collegamento (tipo id_fattura)
uso il link 'vedi relazioni' che trovo alla fine della struttura della tabella  e imposto il campo id_fattura
indicando il campo di collegamento (fatture.id) e metto CASCADE su ondelte e onupdate



$return_arr = array();

     //se � presente il valore term
    if (isset($_GET) && isset($_GET['term']) && !empty($_GET['term'])) {
        $term = $_GET['term'];
        //eseguo la query
        $query = "SELECT * FROM nome_tabella WHERE nome_campo LIKE '%{$term}%' ";
        $query .= "ORDER BY nome_campo ASC ";
        $fetch = mysql_query($query);
        //mi costruisco l'array
        while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
            $row_array['label'] = $row['nome_campo'];
            $row_array['value'] = $row['id_campo'];
            array_push($return_arr, $row_array);
        }
    }

//restituisco l'array in formato json
echo json_encode($return_arr);


--------------


$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    //'model'=>$model,
    //'attribute'=>'name',
    'id'=>'country-chain',
    'name'=>'country_chain',
    'source'=>$this->createUrl('request/suggestCountry'),
    'options'=>array(
        'delay'=>300,
        'minLength'=>2,
        'showAnim'=>'fold',
        'select'=>"js:function(event, ui) {
            $('#label').val(ui.item.label);
            $('#code').val(ui.item.code);
            $('#call_code').val(ui.item.call_code);
        }"
    ),
    'htmlOptions'=>array(
        'size'=>'40'
    ),
));




marrone scuro   F2AE6E
marrone chiaro  FFDCA4
bianco		FFFFFF
verde		009940



--------- palyground (ovvero siti di esempio dei vari widget ed estensioni
http://www.eha.ee/labs/yiiplay/index.php/en
http://www.yiiplayground.cubedwater.com/index.php?r=site/index



----------
	link per fullcalendar in php
http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/



---------- per fare PDF
	- vedere esempio in view/codificaCinesi/index.php ( e ricordarsi che nel controller devo utilizzare renderPartial)




---------- per dizionario lingue
	Yii::t('app', 'Select')


---------- da metter nel model per sistemare date in italiano
        public function behaviors()
        {
            return array('zDateTimeBehavior' => array('class' => 'ext.zDateTimeBehavior')); 
        }        
	!!!!!!!! ATTENZIONE !!!!!!!!!!!!!!
	poi nelle view che utilizzano il widget zii.widgets.jui.CJuiDatePicker mettere 'dateFormat'=>'dd-mm-yy'


---------- per avere una dropdown list che prende i dati da una tabella

   <?php echo $form->dropDownList($model,'cinesi_seg_01', CHtml::listData(CodificaCinesi::model()->findAll(), 'id', 'descrizione'), array('empty'=>Yii::t('app', 'Select'))); ?>


---------- per avere una dropdown list che prende dati fissi

   <?php echo $form->dropDownList($model,'mi_sam', array(0 => '0', 1 => '1', 2 => '2', 3 => '3'), array('empty'=>Yii::t('app', 'Select'))); ?>



---------- per avere una dropdown list che prende dati fissi con optgroup


                <?php
                $zl1 = array(
                        array('id'=>1,'text'=>'Not Hispanic or Latino','group'=>'Caucasian'),
                        array('id'=>2,'text'=>'Hispanic or Latino','group'=>'Caucasian'),
                        array('id'=>3,'text'=>'African','group'=>'Black'),
                        array('id'=>4,'text'=>'Hispanic','group'=>'Black'),
                        array('id'=>5,'text'=>'Caribbean','group'=>'Black'),
                        array('id'=>6,'text'=>'Chinese','group'=>'Asian/Oriental'),
                        array('id'=>7,'text'=>'Japanese','group'=>'Asian/Oriental'),
                        array('id'=>8,'text'=>'Indian','group'=>'Asian/Oriental'),
                        array('id'=>9,'text'=>'Native Hawaiian/Pacific Islander','group'=>'Asian/Oriental'),
                        array('id'=>10,'text'=>'Native Alaskan/Inuit','group'=>'Other'),
                        array('id'=>11,'text'=>'Native American','group'=>'Other'),
                        array('id'=>12,'text'=>'Other, Specify','group'=>'Other'),
                    );
                $data = CHtml::listData($zl1,'id','text','group');
                 ?>
                <?php echo $form->dropDownList($model,'razza', $data, array('empty'=>Yii::t('app', 'Select'))); ?>



---------- per avere dei radio button che prendono dati fissi
		<?php //echo $form->radioButtonList($model,'vs_classe_di_maron',array('1'=>'1','2'=>'2','3'=>'3','4'=>'4'),array('separator'=>'<br><label>  </label>')); ?>



---------- questo si mette in config/main.php per caricare un controller per poter utilizzare le sue funzioni 

	// autoloading model and component classes
	'import'=>array(
		'application.models.*',
		'application.components.*',
                'application.controllers.FunzioniController',
    ),



---------- questo serve per impostare una scritta flash

                            Yii::app()->user->setFlash('success', "Data saved!");
                            $this->refresh();

   per visualizzarlo poi mettere nella view 

	<?php if(Yii::app()->user->hasFlash('success')):?>
            <?php
               Yii::app()->clientScript->registerScript(
                   'myHideEffect',
                   '$(".flash-success").animate({opacity: 1.0}, 1000).fadeOut("slow");',
                   CClientScript::POS_READY
                   );
            ?>

            <div class="flash-success">
            <?php echo Yii::app()->user->getFlash('success'); ?>
            </div>

        <?php endif; ?>


---------- per utilizzare il gii coche mette calendario e gestisce i flag (tinyint(4))		

	per gii utilizzare quello caricato in extension/gtc    
		basta modificare poi config/main.php

		'gii'=>array(
			'class'=>'system.gii.GiiModule',
			'password'=>'password',
                        'generatorPaths'=>array('ext.gtc'),   // Gii Template Collection
		 	// If removed, Gii defaults to localhost only. Edit carefully to taste.
			'ipFilters'=>array('127.0.0.1','::1'),
		),





----------- questo serve per metter un link in una grid

<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'anagrafica-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		//'ID',
               array(
                    'class'=>'CLinkColumn',
                    'header'=>'Codice',
                    'labelExpression'=>'$data->ID',
                    'urlExpression'=>'"index.php?r=anagrafica/view&id=".$data->ID',
                ),
		//'Internal_code',
		'Nome',
		'Cognome',
		//'Iniziali',
		'Gender',
		'Data_Nascita',
		/*
		'Indirizzo',
		'CAP',
		'Citt�',
		'Telefono',
		'Cellulare',
		'Email',
		*/
		array(
			'class'=>'CButtonColumn',
		),
	),
)); ?>


----------------- link con esempi vari
http://www.yiiframework.com/wiki/48/by-example-chtml/



----------

!!! MEGLIO NON USARLO PER ORA
!!!        da mettere nella descrizione di un campo per avere la decodifica
!!!	   CONSTRAINT FOREIGN KEY (departmentId) REFERENCES Department(id)

