Author Archives: admin

Sincronizam Outlook cu Voip telefonul in cazul meu GRANDSTREAM GXP-2000

Sincronizam Outlook cu Voip telefonul in cazul meu GRANDSTREAM GXP-2000 care permite importul contactelor prin XML.

Exportam contactele din outlooc intr-un fisier text, cu delimitator TAB.

Rulam scriptul:

<?php

    $file = 'contacts.txt';
    $xml_file = 'gs_phonebook.xml';
    
    $f = fopen($file, 'r');
    
    $delimiter = "\t";
    
    $line = fgets($f);
    
    $AddressBook = array();
    $total = 0;
    
    while (!feof($f)) {
        $line = fgets($f);
        
        $a = explode($delimiter, $line);

        if (count($a) > 1)
        {            
            $FirstName = $a[1];
            $LastName = $a[3];
            $Tel = array();
            
            $tels = array(31, 32, 34, 36,37,38,40,41,42);
            
            foreach ($tels as $id)
            {
                if (isset($a[$id]) && $acc = CheckNumber($a[$id]))
                {
                    $Tel[] = array(‘tel’ => $a[$id], 'acc' => $acc);
                }
            }
            
            if (count($Tel))
            {
                $i = 1;
                foreach ($Tel as $tel)
                {
                    $Contact = array();
                    $Contact[‘LastName’] = $LastName.($i > 1 ? ' – '.$i : '');
                    $Contact[‘FirstName’] = $FirstName;
                    $Contact[‘phonenumber’] = $tel[‘tel’];
                    $Contact[‘accountindex’] = $tel[‘acc’];
                    
                    $AddressBook[] = $Contact;
                    $i++;
                    $total++;
                }
                
                
            }
        }
        
        //echo '<pre>'; print_r($a);  exit;
    }
    
    fclose($f);
    
    //Facem XML-ul
    $xml_output = "<?xml version=\"1.0\"?>\n";
    $xml_output .= "<AddressBook>\n";
    foreach ($AddressBook as $Contact){
    $xml_output .= "\t<Contact>\n";
    $xml_output .= "\t\t<LastName>" . $Contact[‘LastName’] . "</LastName>\n";
    $xml_output .= "\t\t<FirstName>" . $Contact[‘FirstName’] . "</FirstName>\n";
    $xml_output .= "\t\t\t<Phone>\n\t\t\t\t<phonenumber>" . $Contact[‘phonenumber’] . "</phonenumber>\n";
    $xml_output .= "\t\t\t\t<accountindex>" . $Contact[‘accountindex’] . "</accountindex>\n";
    
    $xml_output .= "\t\t\t</Phone>\n";
    $xml_output .= "\t</Contact>\n";
    }

    $xml_output .= "</AddressBook>";
    
    $f = fopen($xml_file, 'w');
    
    fwrite($f, $xml_output);
    
    fclose($f);
    
    
    echo 'Total adaugate : '.$total;
    
    
    
    function CheckNumber($number)
    {
        if (strlen($number) < 5)
        {
            return false;
        }
        
        if (substr($number, 0, 1) == '+')
        {
            str_replace('+', '', $number);
            
            if (substr($number, 0, 2) == '40')
            {
                //E romania
                return 2;
            }
            //Altfel e pe moldova
            return 1;
        }
        
        if (substr($number, 0, 2) == '06' || substr($number, 0, 3) == '078' || substr($number, 0, 3) == '079')
        {
            return 1;
        }
        
        return 2;
    }

Uplodam fisierul pe un domeniu.com

In setarile telefonului bifam "Phonebook XML Download: YES, HTTP."  si indicam calea catre domeniu, NU SI FISIERUL!

EX: www.lideri.com nu www.lideri.com/gs_phonebook.xml

setam o perioada la care sa se faca resincronizarea, si resetam telefonul, ar trebui sa incarce xml-ul la butare.

Succes!

 

Updatam linkurile de pe WP

Am avut de mai multe ori aceasta problema, uneori am apelat la plugin-uri, alteori la copy & replace… acum am facut un mic script :

 

 

<?php

    /*
     * Se apeleaza: domeniu.tld/wp-content/themes/themename/fix.php
     * */

    $txt_old = 'old_domain.com/blog';
    $txt_new = 'new_domain.com';
    
    require '../../../wp-config.php';

    mysql_connect('localhost', DB_USER, DB_PASSWORD);
    mysql_select_db(DB_NAME);
    
    $r = mysql_query('SELECT *
    FROM  `wp_posts`
    WHERE  `post_content` LIKE  "%'.$txt_old.'%"');

    $i = 0;
    while ($row = mysql_fetch_array($r)) {
        mysql_query('UPDATE wp_posts SET '.
        ' post_content = "'.addslashes(str_replace($txt_old, $txt_new, $row[‘post_content’])).'", '.
        ' guid  = "'.addslashes(str_replace($txt_old, $txt_new, $row[‘guid ‘])).'" '.
        ' WHERE ID = '.$row[‘ID’]
        );
        
        $i++;
    }
    echo "<p>Total : $i</p>";
    

    echo 'The end!';

Efecte CSS transaction

Un efect frumos ne da posibilitatea de a da viteza de tranzactionare de de la o culoare la alta, da la o pozitie la alta...fara ca sa folosim JS.

-webkit-transition: height 0.6s;
-moz-transition: height 0.6s;
-o-transition: height 0.6s;
transition: height 0.6s;

Adaugam lumbra la text sau box din CSS

Pentru un div se face asa:

#example1 {
-moz-box-shadow: 10px 10px 5px #888;
-webkit-box-shadow: 10px 10px 5px #888;
box-shadow: 10px 10px 5px #888;
}

Pentru un text:

p.text{
	text-shadow: #6374AB 20px -12px 2px;
}
  1. culoarea textului
  2. X – coordonate ale textului, relativ la text
  3. Y – coordonate ale textului relativ la text
  4. raza umbei discompuse.

Upload cu Ajax valabil pentru toate browsere

M-am apucat si eu sa fac un upload cu HTML5 cu darg & drop, upload prin ajax, afisearea imadiata a imaginei uplodate in pagina…chestii trestii…frumo. Insa vechea problema, IE! + alte browsere suportul caror doarme…

Am folosit un plugin, parerea mea este cel mai bun, nu necesita multe customizre, ai bagat codul js in pagina, ai adaptat php-ul dupa scriptul tau si vuolea! merge pe orice browser, detecteaza automat prin ce mod sa trimita fisierul…deci mie mi-a placut, pluginul este aci: http://valums.com/ajax-upload/

Deactivarea serviciului Mail pe Plesk 10 pentru un domeniu.

Am intimpinat urmatoarea problema, am hostat mailurile pe google apps, toate mailurile ajung fara nici o problema in afara de cele trimise de pe site, alea nu ajung.
Se intimpla din acea cauza, ca scriptul trimite mailul de pe host.tld pe email@host.tld si crede ca acea casuta de mail este pe acel server, pana la plesk 9 era simplu, setai MX – ule din DNS settings + debifam serviciul de mail, in plesk 10 bifa nu mai exista.

Continue reading

Ghidul soției perfecte

Manual pentru femei din anul 1955
În anul 1955 s-a tipărit un manual pentru femei, în domeniul gospodăriei.
Mai jos sunt câteva sfaturi din acel manual:
Pregătiţi cina la timp. Planificaţi deja de dimineaţa sau chiar din seara precedentă, ca soţul dumneavoastră să fie primit cu o cină gustoasă când ajunge acasă de la munca. Astfel vă veţi asigura că soţul dumneavoastră va şti că v-aţi gândit la el, în timp ce el era la muncă, şi că vă ocupaţi de nevoile lui. La majoritatea bărbaţilor le este foame când vin acasă de la muncă şi prin faptul că veţi găti ceva din mâncărurile lui preferate veţi asigura un bun venit călduros pentru el.
Pregătiţi-vă pentru primirea lui. Odihniţi-vă 15 minute înaintea sosirii lui, astfel veţi fi proaspătă şi atractivă când ajunge. Aranjaţi-vă machiajul, puneţi-vă o panglică în păr şi prezentaţi-vă proaspătă. Soţul dumneavoastră a petrecut mult timp între oameni obosiţi la locul lui de muncă. Fiţi interesantă şi veselă. Ziua lui de lucru a fost plictisitoare şi are nevoie de puţină distracţie şi una din datoriile dumneavoastră este să asiguraţi acest lucru. Reduceţi zgomotul. Când vine acasă soţul dumneavoastră opriţi aparatele casnice şi ziceţi-le şi copiilor să fie mai liniştiţi. Fiţi fericită că îl revedeţi. Zâmbiţi călduros şi arătaţi-vă dorinţa sinceră de a-i satisface dorinţele.
Ascultaţi ce vrea să zică şi chiar dacă aveţi multe de zis nu faceţi asta exact după sosirea lui. Prima dată să vorbească el, sigur are lucruri mai importante în mintea lui decât dumneavoastră. Nu-l deranjaţi. Nu vă plângeţi dacă soţul dumneavoastră ajunge acasă târziu sau dacă vrea să plece undeva la cină fără dumneavoastră. În loc de ceartă încercaţi să înţelegeţi ce presiune mare este pe el din cauza locului de muncă. Când este acasă sigur vrea să se odihnească şi să se relaxeze. Şi în cele din urmă nu puneţi întrebări fără rost şi nu puneţi la îndoială deciziile şi integritatea lui. Nu uitaţi că el este şeful casei, deci îşi va pune în practică propria voinţă cinstit şi corect.
Şi ţineţi minte, femeia bună ştie unde îi este locul.

 

Banc 27.04

Муж собирается уходить. Жена злиться:
– Опять среди ночи придешь пьяный!
В три часа ночи раздается звонок, вваливается пьяный муж и злобно
кричит:
– Ну что, накаркала!

Comenzile de baza linux

Stergem un director

recursiv rm -r directory

Acelas lucru face, doar ca nu ne intreaba de fiecare data daca suntem siguri ca vrem sa stergem directorul

rm -rf directory

Arhivam tot din directorul curent:

tar -cvf site1.tar *

Dezarhivare:

tar -xvf *.tar

sau ca sa nu sa afiseze tot continutul arhivei, scoatem parametrul "v" :

tar -xf *.tar

sau

unzip namefile.zip

Cream un director:

mkdir dirName

Copiem un director cu tot continutul sau:

cp -r dir_sursa dir_destinatie

Mysql Dump la baza de date:

mysqldump –opt -u dbusername db_name -p  | gzip > fisier_destinatie.dump.gz

Importam o baza de date din backup:

mysql db_name -h localhost -u dbusername -p < /home/denumirea_fisier.sql

Vedecm ca ocupa fiecare director:

du -h

Spatiu liber pe disc:

df -h