Archive for the ‘PHP’ tag
Ataşamente - PHP-Fusion V6
La cererea unui membru din comunitatea PHP-Fusion România am realizat o modificare la fişierele forum-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 /forum.
Yahoo! Messenger Panel - PHP-Fusion v6
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.
Cele mai vizualizate poze - PHP-Fusion
Puneti acest cod intr-un panou. Salvati-l si activati-l.
if (!defined(”IN_FUSION”)) { header(”Location:../../index.php”); 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.php?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();
Bot pentru reclame - PHP-Fusion
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.php.
Rezultatul final arata cam asa:

Două secţiuni de articole - Extra Articles
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:
<?php
$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:
<?php$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:
<?php$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:
<?php$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:
<?php$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.php', '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:
<?php$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.php', '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.
Seo Friendly Links
Ideea a plecat de la articole, de pe saitul www.web-bureau.com
Urmează paşii pentru ştiri:
1. Deschideţi fişierul theme.php (themes/thema_ta/theme.php) ş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ă PHP-Fusion este instalat într-un subdirector (nu în root) deschideţi fişierul .htaccess şi pe rândul 2 scrieţi folderul. Exemplu:
Dacă PHP-Fusion este instalat în directorul phpfusion scrieţi RewriteBase /phpfusion
Securizarea infuziilor şi modificărilor în PHP-Fusion
Cu toţii ştim că securitatea unui portal PHP-Fusion este foarte importantă. În acest articol vrem să vă arătăm cum să creaţi modificări sau infuzii 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 PHP integrate în PHP-Fusion 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 PHP 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.php");
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.php");
- Puneţi acest cod la începutul fiecărui panou:
if (!defined("IN_FUSION")) { header("Location:../../index.php"); exit; }
- Puneţi acest cod la începutul – paginilor incluse? - :
if (!defined("IN_FUSION")) { header("Location:../index.php"); 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;
Advanced Forum Index - Forum Avansat
Reflecţie în Galeria Foto - PHP-Fusion
Ce face? Mai jos aveţi un exemplu.
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.php 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.php 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 PHP-Fusion România - Deschide
Instalare GD Library pe Linux Mint
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 ![]()
