AlexxBlog.com


Colţul meu pe Internet

Archive for the ‘PHP’ tag

Ataşamente - PHP-Fusion V6

without comments

La cererea unui membru din comunitatea PHP-Fusion România am realizat o modificare la fişierele -ului pentru a permite ataşarea mai multor ataşamente.

La începutul aproape fiecărui fişier se găseşte variabila $atasamente. Este suficient să schimbi valoare acesteia (de default este 5) pentru a modifica numărul de ataşamente.

Pentru a aplica modificările trebuie doar să înlocuiţi toate fişierele din arhivă cu cele din folderul /.

Download | Topic PHP-Fusion România

Written by Alex

August 20th, 2008 at 1:17 pm

Posted in PHP-Fusion

Tagged with , , , , ,

Yahoo! Messenger Panel - PHP-Fusion v6

without comments

Deşi am făcut-o acum 3-4 luni, tocmai acum câteva zile am publict-o.

Ce ştie să facă?

  • fiecare utilizator îşi poate adăuga ID-ul în baza de date pentru a cunoaşte noi prieteni;
  • dispune de o pagină personală unde vor fi afişate informaţiile precum: numele, data naşterii, ID-ul, oraşul şi o mică descriere;
  • ID-urile sunt sortate în funcţie de sex (băiat - fată);
  • un panou care afişează ultimele ID-uri adăugate pe categorie.

În arhivă am adăugat şi un panou care afişează pe orizontală 5 ID-uri selectate aleatoriu din baza de date.

Pe viitor aş vrea să o dezvolt şi pentru V7, vreau să îi fac un mic panou de administrare pentru opţiuni (ID-uri afişate pe pagină, culori, etc). Dacă aveţi ceva idei aştept comentarii.

Download | Topic PHP-Fusion România

Written by Alex

August 20th, 2008 at 1:03 pm

Posted in PHP-Fusion

Tagged with , , , , ,

Cele mai vizualizate poze - PHP-Fusion

without comments

Puneti acest cod intr-un panou. Salvati-l si activati-l.

if (!defined(”IN_FUSION”)) { header(”Location:../../index.”); exit; }
define(”SAFEMODE”, @ini_get(”safe_mode”) ? true : false);

openside(”Cele mai vizualizate poze”);
$result = dbquery(
“SELECT tp.*, ta.*, tu.user_id,user_name FROM “.$db_prefix.”photos tp
LEFT JOIN “.$db_prefix.”photo_albums ta USING (album_id)
LEFT JOIN “.$db_prefix.”users tu ON tp.photo_user=tu.user_id
WHERE “.groupaccess(’ta.album_access’).” ORDER BY tp.photo_views DESC LIMIT 0,7″
);
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
$itemsubject = trimlink($data['photo_id'], 23);
$itemdescription = trimlink($data['photo_title'], 23);
$photodir = (!SAFEMODE ? “album_”.$data['album_id'].”/” : “”);
echo “<br>\n”;
echo “<center><a href=’”.BASEDIR.”photogallery.?photo_id=”.$data['photo_id'].”‘ title=’”.$data['photo_title'].”‘ class=’side’>
<img src=’”.PHOTOS.$photodir.$data['photo_thumb1'].”‘ title=’”.$data['photo_title'].”‘ alt=’”.$data['photo_title'].”‘ border=’0′><br />”.$data['photo_title'].” (”.$data['photo_views'].”)\n”;
echo “<br>\n”;
}
} else {
echo $locale['004'];
}
closeside();

Topic PHP-Fusion Romania

Written by Alex

August 8th, 2008 at 2:53 pm

Posted in PHP-Fusion

Tagged with , ,

Bot pentru reclame - PHP-Fusion

with 7 comments

Nu am mai scris de mult pe blog si intre timp s-au intamplat multe lucruri.

Pe data de 13.07.2008 voi pleca in Viena cu proiectul LDV. Acolo voi sta 3 saptamani, deci pe 02.08 voi reveni in tara.

Astazi am intrat pe PHP-Fusion Romania si am vazut aceasta discutie, asa ca m-am decis sa modific fisierul viewthread..

Rezultatul final arata cam asa:

Google Bot

Download | Topic PHP-Fusion Romania

Written by Alex

June 15th, 2008 at 8:18 pm

Posted in PHP-Fusion

Tagged with , , ,

Două secţiuni de articole - Extra Articles

without comments

Ok, deci haide să o iau de la început ca să înţeleagă toată lumea.

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 crearea tabelului fusion_articles1:

<?

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

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

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

`article_subject` varchar(200) collate latin1_general_ci NOT NULL default '',

`article_snippet` text collate latin1_general_ci NOT NULL,

`article_article` text collate latin1_general_ci NOT NULL,

`article_breaks` char(1) collate latin1_general_ci NOT NULL default '',

`article_name` smallint(5) unsigned NOT NULL default '1',

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

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

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

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

PRIMARY KEY (`article_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1");

if ($r) echo "Tabelul articles1 a fost creat cu succes!";

else echo "Tabelul articles1 nu a fost creat!";

?>

4. Apăsaţi Previzualizare pagină. Dacă totul a decurs fără probleme, acel cod va trebui să afişeze textul “Tabelul articles1 a fost creat cu succes!”;

5. Introduceţi la Conţinut pagină următorul cod pentru crearea tabelului fusion_article_cats1:

<?$r = dbquery("CREATE TABLE `[color=red]fusion[/color]_article_cats1` (

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

`article_cat_name` varchar(100) collate latin1_general_ci NOT NULL default '',

`article_cat_description` varchar(200) collate latin1_general_ci NOT NULL default '',

`article_cat_sorting` varchar(50) collate latin1_general_ci NOT NULL default 'article_subject ASC',

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

PRIMARY KEY (`article_cat_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1");

if ($r) echo "Tabelul article_cats1 a fost creat cu succes!";

else echo "Tabelul article_cats1 nu a fost creat!";

?>

6. Apăsaţi Previzualizare pagină. Dacă totul a decurs fără probleme, acel cod va trebui să afişeze textul “Tabelul article_cats1 a fost creat cu succes!”;

7. Introduceţi la Conţinut pagină următorul cod pentru crearea tabelului comments1:

<?$r = dbquery("CREATE TABLE `[color=red]fusion[/color]_comments1` (

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

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

`comment_type` char(2) collate latin1_general_ci NOT NULL default '',

`comment_name` varchar(50) collate latin1_general_ci NOT NULL default '',

`comment_message` text collate latin1_general_ci NOT NULL,

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

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

`comment_ip` varchar(20) collate latin1_general_ci NOT NULL default '0.0.0.0',

PRIMARY KEY  (`comment_id`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;");

if ($r) echo "Tabelul comments1 a fost creat cu succes!";

else echo "Tabelul comments1 nu a fost creat!";

?>

8. Apăsaţi Previzualizare pagină. Dacă totul a decurs fără probleme, acel cod va trebui să afişeze textul “Tabelul comments1 a fost creat cu succes!”;

9. Introduceţi la Conţinut pagină următorul cod pentru crearea tabelului ratings1:

<?$r = dbquery("CREATE TABLE `[color=red]fusion[/color]_ratings1` (

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

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

`rating_type` char(1) collate latin1_general_ci NOT NULL default '',

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

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

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

`rating_ip` varchar(20) collate latin1_general_ci NOT NULL default '0.0.0.0',

PRIMARY KEY  (`rating_id`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;");

if ($r) echo "Tabelul ratings1 a fost creat cu succes!";

else echo "Tabelul ratings1 nu a fost creat!";

?>

10. Apăsaţi Previzualizare pagină. Dacă totul a decurs fără probleme, acel cod va trebui să afişeze textul “Tabelul ratings1 a fost creat cu succes!”;

11. Introduceţi la Conţinut pagină următorul cod pentru modificarea tabelului admin:

<?$r = dbquery("INSERT INTO `[color=red]fusion[/color]_admin` (

`admin_id` ,

`admin_rights` ,

`admin_image` ,

`admin_title` ,

`admin_link` ,

`admin_page`

)

VALUES (

'70', 'AC', 'article_cats.gif', 'Categorii articole1', 'article_cats1.', '1'

);");

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

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

?>

12. Apăsaţi Previzualizare pagină. Dacă totul a decurs fără probleme, acel cod va trebui să afişeze textul “Tabelul admin a fost modificat cu succes!”;

13. Introduceţi la Conţinut pagină următorul cod pentru modificarea tabelului admin:

<?$r = dbquery("INSERT INTO `[color=red]fusion[/color]_admin` (

`admin_id` ,

`admin_rights` ,

`admin_image` ,

`admin_title` ,

`admin_link` ,

`admin_page`

)

VALUES (

'71', 'A', 'articles.gif', 'Articole1', 'articles1.', '1'

);");

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

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

?>

14. Apăsaţi Previzualizare pagină. Dacă totul a decurs fără probleme, acel cod va trebui să afişeze textul “Tabelul admin a fost modificat cu succes!”;

Pasul II - Uploadarea noilor fişiere

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

Pasul III - Concluzii
1. Sper să nu fi uitat ceva când am făcut arhiva. Am testat totul pe localhost şi a mers bine, nu am găsit nici o problemă;
2. Dacă aveţi probleme ştiţi unde să mă găsiţi :) Mai simplu de atât nu am găsit cum să vă explic.

Download | Topic PHP-Fusion România

Written by Alex

April 5th, 2008 at 11:00 pm

Posted in PHP-Fusion

Tagged with , , ,

Seo Friendly Links

without comments

Ideea a plecat de la , de pe saitul www.web-bureau.com

Urmează paşii pentru ştiri:
1. Deschideţi fişierul theme. (themes/thema_ta/theme.) şi căutaţi:

echo openform("N",$info['news_id']).newsposter($info," ·").newsopts($info,"·").closeform("N",$info['news_id']);

înlocuiţi cu:

// url optimisation replacement

// echo openform("N",$info['news_id']).newsposter($info," ·").newsopts($info,"·").closeform("N",$info['news_id']);

echo openform("N",$info['news_id']).newsposter($info," ·").seonewsopts($info,"·").closeform("N",$info['news_id']);

// END url optimisation replacement

Aici găsiţi discuţia,

Pentru celelalte secţiuni doar urcaţi pe server fişierele din arhivă.

Dacă este instalat într-un subdirector (nu în root) deschideţi fişierul .htaccess şi pe rândul 2 scrieţi folderul. Exemplu:
Dacă este instalat în directorul phpfusion scrieţi RewriteBase /phpfusion

Download | Dem | Topic PHP-Fusion România

Written by Alex

April 5th, 2008 at 11:24 am

Posted in PHP-Fusion

Tagged with , , ,

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

without comments

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 , , , ,

Instalare GD Library pe Linux Mint

without 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 ,