AlexxBlog.com


Colţul meu pe Internet

Archive for March, 2008

Două forumuri - Extra forum

with one comment

Pasul I - Crearea tabelelor în baza de date:

1. Vă duceţi la Paginile Personalizate ( Panoul de administrare -> Administrare conţinut -> Pagini personalizate );
2. Scrieţi un nume oarecare la Titlul paginii;
3. Introduceţi la Conţinut pagină următorul cod pentru a efectua modificările în baza de date:



$r= dbquery("CREATE TABLE `fusion_forums1` (`forum_id` smallint(5) unsigned NOT NULL auto_increment,

`forum_cat` smallint(5) unsigned NOT NULL default '0',

`forum_name` varchar(100) NOT NULL default '',

`forum_order` smallint(5) unsigned NOT NULL default '0',

`forum_description` text NOT NULL,

`forum_moderators` text NOT NULL,

`forum_access` tinyint(3) unsigned NOT NULL default '0',

`forum_posting` tinyint(3) unsigned NOT NULL default '0',

`forum_lastpost` int(10) unsigned NOT NULL default '0',

`forum_lastuser` smallint(5) unsigned NOT NULL default '0',

PRIMARY KEY (`forum_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

");

if ($r) {

echo " Tabelul fusion_forum1 a fost creat cu succes!!

";

} else {

echo " Eroare la crearea tabelului fusion_forum1!

";

}$r= dbquery("CREATE TABLE `fusion_forum_attachments1` (

`attach_id` smallint(5) unsigned NOT NULL auto_increment,

`thread_id` smallint(5) unsigned NOT NULL default '0',

`post_id` smallint(5) unsigned NOT NULL default '0',

`attach_name` varchar(100) NOT NULL default '',

`attach_ext` varchar(5) NOT NULL default '',

`attach_size` int(20) unsigned NOT NULL default '0',

PRIMARY KEY (`attach_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

");

if ($r) {

echo " Tabelul fusion_forum_attachments1 a fost creat cu succes!!

";

} else {

echo " Eroare la crearea tabelului fusion_forum_attachments1!

";

}

$r= dbquery("CREATE TABLE `fusion_posts1` (

`forum_id` smallint(5) unsigned NOT NULL default '0',

`thread_id` smallint(5) unsigned NOT NULL default '0',

`post_id` smallint(5) unsigned NOT NULL auto_increment,

`post_subject` varchar(100) NOT NULL default '',

`post_message` text NOT NULL,

`post_showsig` tinyint(1) unsigned NOT NULL default '0',

`post_smileys` tinyint(1) unsigned NOT NULL default '1',

`post_author` smallint(5) unsigned NOT NULL default '0',

`post_datestamp` int(10) unsigned NOT NULL default '0',

`post_ip` varchar(20) NOT NULL default '0.0.0.0',

`post_edituser` smallint(5) unsigned NOT NULL default '0',

`post_edittime` int(10) unsigned NOT NULL default '0',

PRIMARY KEY (`post_id`),

KEY `thread_id` (`thread_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

");

if ($r) {

echo " Tabelul fusion_posts1 a fost creat cu succes!!

";

} else {

echo " Eroare la crearea tabelului fusion_posts1!

";

}

$r= dbquery("CREATE TABLE `fusion_threads1` (

`forum_id` smallint(5) unsigned NOT NULL default '0',

`thread_id` smallint(5) unsigned NOT NULL auto_increment,

`thread_subject` varchar(100) NOT NULL default '',

`thread_author` smallint(5) unsigned NOT NULL default '0',

`thread_views` smallint(5) unsigned NOT NULL default '0',

`thread_lastpost` int(10) unsigned NOT NULL default '0',

`thread_lastuser` smallint(5) unsigned NOT NULL default '0',

`thread_sticky` tinyint(1) unsigned NOT NULL default '0',

`thread_locked` tinyint(1) unsigned NOT NULL default '0',

PRIMARY KEY (`thread_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

");

if ($r) {

echo " Tabelul fusion_threads1 a fost creat cu succes!!

";

} else {

echo " Eroare la crearea tabelului fusion_threads1!

";

}

$r= dbquery("CREATE TABLE `fusion_thread_notify1` (

`thread_id` smallint(5) unsigned NOT NULL default '0',

`notify_datestamp` int(10) unsigned NOT NULL default '0',

`notify_user` smallint(5) unsigned NOT NULL default '0',

`notify_status` tinyint(1) unsigned NOT NULL default '1'

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

");

if ($r) {

echo " Tabelul fusion_thread_notify1 a fost creat cu succes!!

";

} else {

echo " Eroare la crearea tabelului fusion_thread_notify1!

";

}

$r = dbquery("INSERT INTO `fusion_admin` (

`admin_id` ,

`admin_rights` ,

`admin_image` ,

`admin_title` ,

`admin_link` ,

`admin_page`

)

VALUES (

'300', 'F', 'forums.gif', 'Forum1', 'forums1.', '1'

);");

if ($r) echo "Tabelul fusion_admin a fost modificat cu succes!";

else echo "Tabelul fusion_admin nu a fost modificat!";

?>

4. Apăsaţi Previzualizare pagină.

Pasul II - Uploadarea noilor fişiere

1. Uploadaţi fişierele din ataşament în folderele lor.

Pasul II - Sfârşit :P

Aici un mic demo.

Atenţie!
1. Nu uitaţi să faceţi mai întâi o copie de siguranţă a bazei de date;
2. Nu am testat toate comenzile, dacă ceva nu merge vă rog să postaţi aici.

Download - Topic PHP-Fusion România

Written by Alex

March 29th, 2008 at 3:17 pm

Posted in PHP-Fusion

Tagged with ,

Securizarea infuziilor şi modificărilor în PHP-Fusion

with one comment

Cu toţii ştim că securitatea unui portal este foarte importantă. În acest articol vrem să vă arătăm cum să creaţi modificări sau fără greşeli.

1. Drepturile utilizatorilor:

Pentru a verifica drepturile membrilor şi grupurilor de membri folosiţi întotdeauna:

- constantele iGUEST, iUSER, iMEMBER, iADMIN, iSUPERADMIN, iUSER_RIGHTS, iUSER_GROUPS;

- funcţiile checkrights(), getuserlevel(), checkgroup(), groupaccess().

Exemplu:

if (iMEMBER) echo "Salut!";

else echo "Înregistrează-te!";

2. Interogări Mysql:

Folosiţi întotdeauna funcţiile integrate în pentru a interoga baza de date (Mysql):

- dbquery($query) - pentru a efectua un query mysql;

- dbrows($query) - pentru a cunoaşte numărul de rânduri dintr-un query mysql;

- dbcount($camp, $tabel, $conditii) – Afişează suma valorilor câmpului ($camp) din tabel ($tabel) în funcţie de condiţiile puse ($conditii);

- dbresult($query, $camp) - afişează conţinutul câmpului ($camp) în funcţie de primul rând din $query;

- dbarray($query) – Inserează datele din $query într-un array asociativ;

- dbarraynum($query) – Inserează datele din $query într-un array poziţional;

Un exemplu:

// efectuez interogarea

$result = dbquery("SELECT * FROM ".$db_prefix."custom_pages WHERE page_id='$page_id'");

// Controlez ca interogarea să aibă cel puţin un rând

if (dbrows($result) != 0) {

// Pun rezultatele într-un array poziţional

$data = dbarray($result);

// Folosesc datele din array

echo $data['page_title'];

} else die("Eroare!");

Observaţie: Amintiţi-vă să optimizaţi interogările mysql. Server-ului nu îi va place să primească sute de interogări pentru fiecare sait ;)

3. $_POST şi $_GET:

- Folosiţi întotdeauna funcţia stripinput() pentru a vă apăra împotriva codurilor HTML şi periculoase atunci când doriţi să adăugaţi informaţii în baza de date.

Exemplu:

$data = stripinput($POST['']);

Această funcţie înlocuieşte anumite caractere cu „entities” (entităţi?) HTML. De exemplu ghilimele “ devin ”.

- Dacă variabila POST/GET trebuie să fie un număr folosiţi funcţia isNum(). Dacă un număr trimis este folosit într-un query mysql folosiţi acest cod înainte să puneţi ceva în tabelul mysql:

if (!isNum($_POST['numarul_meu'])) falback("index.");

Sau:

$numarul_meu = isNum($_POST['numarul_meu']) ? $_POST['numarul_meu'] : $numar_predefinit;

- Nu trimiteţi prin variabila GET informaţii importante precum parole.

- Încercaţi să lucraţi cu baza de date prin câmpuri ID. Sunt mai uşor de manipulat şi sunt mai siguri. Este mai uşor să stabiliţi dacă o valoare este un număr cu ajutorul funcţiei isNum() decât să elaboraţi un „string” (caractere?) şi să stabiliţi dacă este sigur sau nu.

4. Alte lucruri:

- Puneţi acest cod la începutul fiecărui script de administrare:

if (!checkrights("IP")) fallback("../index.");

- Puneţi acest cod la începutul fiecărui panou:

if (!defined("IN_FUSION")) { header("Location:../../index."); exit; }

- Puneţi acest cod la începutul – paginilor incluse? - :

if (!defined("IN_FUSION")) { header("Location:../index."); exit; }

- Verificaţi întotdeauna imaginile încărcate cu funcţia verify_image(). Amintiţi-vă că anumite browser-ere (Navigatoare web?) permit executarea anumitor scripturi .JS prin tag-urile HTML

- Nu abandonaţi e_notice_warnings (erorile?). Amintiţi-vă să declaraţi variabilele cu valori predefinite.

Un exemplu fără declarare:

$otherdata = 'a';

$data = array('b', 'c', 'd');

for ($i=0;$i)

if ($otherdata==$data[$i]) $result = "OK";

}

$final_result = $result;

Codul de mai sus va afişa o eroare: e_notice warning: Variable $result not defined at line XXX.

Scriptul de mai jos este cel corect şi nu va afişa nicio eroare:

$otherdata = 'a';

$data = array('b', 'c', 'd');

$result = "DEFAULT VALUE"; //acest rând rezolvă problema

for ($i=0;$i)

if ($otherdata==$data[$i]) $result = "OK";

}

$final_result = $result;

Written by Alex

March 29th, 2008 at 3:08 pm

Posted in PHP-Fusion

Tagged with , , , ,

Advanced Forum Index - Forum Avansat

without comments

Written by Alex

March 29th, 2008 at 3:03 pm

Posted in PHP-Fusion

Tagged with , , , ,

Reflecţie în Galeria Foto - PHP-Fusion

without comments

Ce face? Mai jos aveţi un exemplu.

Reflecţie în Galeria Foto - PHP-Fusion

Instalare:
1. Dacă vreţi să folosiţi acest efect în orice secţiune a portatului urmăriţi următorii paşi:
1.1 Uploadaţi fişierul reflection.js în folderul principal al temei folosite (ex: themes/Similitude06/);
1.2 Intraţi în fişierul theme. din temă (pe care o folosiţi) şi adăugaţi:

echo '<script type="text/javascript" src="reflection.js"></script>';

1.3 Înlocuiţi fişierul photogallery. cu cel din ataşament. Modificările sunt pe rândurile 62, 128 şi 164.
Am introdus efectul la toate pozele, inclusiv albumele, deşi mi se pare destul de încărcat aşa.
Citiţi fişierul readme.html pentru mai multe opţiuni.De aici puteţi descărca arhiva.

Pentru a folosi efectul şi în alte secţiuni trebuie să adăugaţi următorul cod în tag-ul imaginii (<img>):

class="reflect ropacity66"

2. Dacă vreţi să folosiţi acest efect numai în galeria foto descărcaţi această arhiva (realizată de look).

Topic România - Deschide

Written by Alex

March 29th, 2008 at 2:42 pm

Posted in PHP-Fusion

Tagged with , , , ,

Subtitrări în fişiere .avi - Linux Mint

without comments

1. Instalaţi transcode

1.1 Deschideţi un terminal şi scrieţi următorul cod:

sudo apt-get install transcode 

2. Intraţi în directorul unde aveţi fişierul .avi şi subtitrare, deschideţi un terminal şi introduceţi următorul cod:

transcode -i videofile.avi -x mplayer="-sub subfile.xxx" -o outputfile.avi -y xvid

Unde:
- videofile.avi - este fişierul video;
- subfile.xxx - subtitrarea, xxx este extensie ei (.srt, .sub, etc);
- outputfile.avi - fişierul final.

Written by Alex

March 28th, 2008 at 9:33 pm

Posted in Linux

Tagged with ,

Instalare GD Library pe Linux Mint

with 2 comments

1. Deschidem un terminal şi tastăm:

sudo apt-get install php5-gd

2. Restartăm Apache tastând comanda:

sudo /etc/init.d/apache2 restart

Simplu, uşor, rapid :P

Written by Alex

March 28th, 2008 at 6:54 pm

Posted in Linux

Tagged with ,

Indexare Google - 24 minute

without comments

Indexare Google

Nici nu l-am deschis şi deja îmi indexează paginile imegiat. Articolul l-am postat la ora 9 şi a fost indexat după 30-40 minute. Super!

Written by Alex

March 26th, 2008 at 10:15 pm

Posted in Blog, Diverse

Tagged with ,

Instalare imprimantă Samsung SCX-4100 pe Linux Mint

without comments

1. Deschideţi un terminal şi copiaţi următorul cod:

sudo apt-get install libstdc++2.10-glibc2.2 libsane-dev sane sane-utils

Aceste comenzi vor descărca câteva pachete necesare pentru funcţionarea corectă a imprimantei.

2. Descărcaţi driver-ele pentru imprimantă de aici;

3. Deschideţi un terminal şi intraţi în directorul unde aţi descărcat driver-ele. De exemplu:

cd /home/install/samsung-scx-4100-printer

4. Dezarhivaţi arhiva luată de pe sait:

tar -xzf 20070725084555687_UnifiedLinuxDriver.tar.gz

5. Porniţi instalarea driver-elor:

sudo ./cdroot//install.sh

6. Se va deschide o fereastră. Citiţi cu atenţie ce scrie şi veţi instala cu succes imprimanta.

Mai multe găsiţi aici.

Written by Alex

March 26th, 2008 at 9:18 pm

Posted in Linux

Tagged with ,

Ce este şi cum creez o infuzie?

without comments

Ce este o infuzie?
Infuzia este un Plugin pentru . Se numeşte aşa deoarece cuvântul “plug” a fost înlocuit cu “fusion”, şi cuvântul “in” a fost mutat în faţă. De aici a ieşit cuvântul “infusion”, adică infuzie.

Cum pot creea o infuzie?
În primul rând trebuie să aveţi fişierul-sursă pentru o infuzie, numit infusion.. În acest fişier se află toate datele necesare funcţionării corecte unei .

Ar trebui să arate ca următorul cod:

/*---------------------------------------------------+
|  6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2008 Nick Jones
| http://www..co.uk/
+----------------------------------------------------+
| Lansat sub termenii si conditiile versiunii 2
| a Licentei Publice Generale GNU. Pentru detalii,
| cititi fisierul gpl.txt sau vizitati http://gnu.org
+----------------------------------------------------*/

if (!defined("IN_FUSION") || !checkrights("I")) { header("Location: ../../index."); exit; }

if (file_exists(INFUSIONS."infusion/locale/".$settings['locale'].".")) {
     include INFUSIONS."infusion/locale/".$settings['locale'].".";
} else {
    include INFUSIONS."infusion_title/locale/English.";
}

$inf_title = $locale['xxx100'];
$inf_description = $locale['xxx101'];
$inf_version = "1.0";
$inf_developer = "";
$inf_email = "";
$inf_weburl = "http://";

$inf_folder = "folderol_infuziei";
$inf_admin_image = "";
$inf_admin_panel = "";

$inf_link_name = $locale['xxx102'];
$inf_link_url = "";
$inf_link_visibility = "0";

$inf_newtables = 1;
$inf_insertdbrows = 0;
$inf_altertables = 0;
$inf_deldbrows = 0;

$inf_newtable_[1] = "tabel_nou (
camp1 SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
camp2 TINYINT(5) UNSIGNED DEFAULT '1' NOT NULL,
camp3 VARCHAR(200) DEFAULT '' NOT NULL,
camp4 VARCHAR(50) DEFAULT '' NOT NULL,
PRIMARY KEY (camp1)
) TYPE=MyISAM;";

$inf_insertdbrow_[1] = "tabel_nou (camp1, camp2, camp3, camp4) VALUES('', '', '', '')";

$inf_droptable_[1] = "tabel_nou";

$inf_altertable_[1] = "tabel_name ADD  …";

$inf_deldbrow_[1] = "table_nou";
?> 

Pentru început, toate aceste informaţii vor fi greu de înţeles, dar pe parcurs veţi vedea că sunt uşor de reţinut.
Infuziile funcţionează după un sistem bine creat, astfel se pot introduce date în baza de date cu uşurinţă.

Ce înseamnă toate aceste variabile?

$inf_title = Numele infuziei.
$inf_description = Descrierea infuziei.
$inf_version = Versiunea infuziei.
$inf_developer = Dezvoltatorul infuziei.
$inf_email = E-mail-ul dezvoltatorului.
$inf_weburl = Saitul dezvoltatorului.

$inf_folder = Folderul în care se află fişierele infuziei.
$inf_admin_image = Iconiţa infuziei.
$inf_admin_panel = Legătura din panoul navigare.

$inf_link_name = Numele legăturii infuziei.
$inf_link_url = Legătura infuziei.
$inf_link_visibility = Acces infuzie: 0 - Vizitator / 101 - Membru / 102 - Administrator / 103 - SuperAdministrator.

$inf_newtables = Numărul tabelelor ce trebuie create în baza de date.
$inf_insertdbrows = Numărul câmpurilor ce trebuie create în tabele.
$inf_altertables = Numărul tabelelor ce trebuie modificate.
$inf_deldbrows = Numărul tabelelor ce trebuie şterse.

$inf_newtable_[1] = Pentru început este bine să folosiţi acel cod ca exemplu.

Cum foloseşte cod în ?
Pentru a face acest lucru trebuie să aveţi:
1. Un script care rulează corect;
2. Un script dezvoltat pentru ;
3. Un fişier infusion. care să includă toate variabilele necesare infuziei.

Deschideţi infusion.
Modificaţi toate variabile, iar la codul bazei de date este bine să folosim acel cod ca exemplu.
La începutul infuziei veţi găsi:

if (file_exists(INFUSIONS."infusion/locale/".$settings['locale'].".")) {
include INFUSIONS."infusion/locale/".$settings['locale'].".";
} else {
include INFUSIONS."infusion_title/locale/English.";
}

Înlocuiţi "infusion_title" cu folderul infuziei.

Cam atât!

Alex Dincu (@LEX),
România

Written by Alex

March 24th, 2008 at 10:23 pm

Posted in PHP-Fusion

Tagged with , , , ,

Apache, PHP, mysql, phpmyadmin pe Linux Mint

without comments

Folosesc toate aceste pachete pentru a încerca toate modificările/infuziile pe care le fac pe localhost. Este mai comod şi mai rapid aşa, decât să uploadez tot timpul fişierul modificat pe server.

1. Instalare LAMP:

1.1 Deschideţi un terminal şi scrieţi acest cod:

sudo tasksel install lamp-server

2. Instalare Apache:

2.1 Scrieţi în terminal

apache2

Dacă primiţi această eroare

apache2: Could not determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

scrieţi în terminal

sudo gedit /etc/apache2/httpd.conf

şi la sfârşitul fişierul adăugaţi

ServerName localhost

3. Instalare :

3.1 Scrieţi în terminal

sudo apt-get install php5-cgi

4. Instalare mysql:

4.1 Scrieţi într-un terminal:

sudo apt-get install mysql-server mysql-client

5. Instalare myphpadmin:

5.1 Scrieţi într-un terminal:

sudo apt-get install phpmyadmin

Mai multe detalii aici.

Written by Alex

March 24th, 2008 at 8:09 pm

Posted in Linux

Tagged with