Category Archives: Web

Web

Добавяне на коментари от facebook на сайта

Идеята е да се ползва системата за коментари на facebook:

1. Създава се приложение за коментари:

http://www.facebook.com/developers/createapp.php

App Display Name: example_comments

App Domain:example.com

Website-> Site URL: http://example.com

http://developers.facebook.com/tools/comments?id=191130727657303

2. Взима се кода

http://developers.facebook.com/docs/reference/plugins/comments/

<div id='fb-root'></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = '//connect.facebook.net/bg_BG/all.js#xfbml=1&appId=365185030181491';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class='fb-comments' data-href='http://firmi1.com' data-num-posts='2' data-width='640'></div>

3. Слага се и друг код

<meta property='fb:admins' content='100000589059407' />
<meta property='fb:app_id' content='365185030181433' />

$url="http://example.com/haha/url";
echo "
<br><br><b>Коментирай свободно:</b>
<br><br>";
get_facebook_comment($url,510);

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Автоматично обновяване на 10 WordPress блога за 10 секунди

Идеята е, че трябва да се обновят 10 блога на WordPress и то бързичко с идеята при следващ ъпдейт да става лесно.
Понеже системата е писана на php реших и скриптчет ода бъде на php . Ето го и него:

<?php
#############################################
$wordpress_root_dirs=array(
"/var/www/sait1.com/",
"/var/www/sait2.com/",
"/var/www/sait3.com/",
"/var/www/sait4.com/",
"/var/www/sait5.com/",
"/var/www/sait6.com/",
"/var/www/sait7.com/",
"/var/www/sait8.com/",
"/var/www/sait9.com/",
"/var/www/sait10.com/"
);

$BDIR="/tmp/backup_upgraded_wordpress";
$NDIR="$BDIR/latest_wordpress_files";

#############################################

function dhs_lr_str($a,$b,$c){$a=explode("$a",$c);$b=explode("$b",$a[1]);return addslashes(trim($b[0]));};
$count_wp_blogs=count($wordpress_root_dirs)-1;

@system("mkdir -p $NDIR");
chdir("$NDIR");

echo "
###########################################################################
######## Mass Wordpress Updater ver. 0.1 by amri -- www.mpetrov.net ########
###########################################################################
\n";

echo "Downloading Latest WordPress … \n";
system("wget -q http://wordpress.org/latest.zip -O $NDIR/latest.zip");
system("unzip -o -q $NDIR/latest.zip");

$count_upd_wp=0;
foreach ($wordpress_root_dirs as $RDIR)
{
$count_upd_wp++;
echo "Update Wordpress blogs $count_upd_wp/$count_wp_blogs\n";

$buf=file_get_contents("$RDIR/wp-config.php");

$DB_NAME=trim(dhs_lr_str("define('DB_NAME', '","'",$buf));
$DB_USER=trim(dhs_lr_str("define('DB_USER', '","'",$buf));
$DB_PASSWORD=trim(dhs_lr_str("define('DB_PASSWORD', '","'",$buf));
$DB_HOST=trim(dhs_lr_str("define('DB_HOST', '","'",$buf));
$DB_TABLE=trim(dhs_lr_str('$table_prefix  = \","'",$buf));
$WDIR="$BDIR/$DB_NAME";

@system("mkdir -p $WDIR");
chdir("$WDIR");

echo "Backup Old WordPress ($RDIR) DB: $DB_NAME\n";
system("mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $WDIR/$DB_NAME.sql");

echo "Backup Old WordPress ($RDIR) Files\n";
system("cp -Rp $RDIR/ $WDIR/wordress_files/");

echo "Replace Old WordPress($RDIR) Files\n";
system("cp -ar $NDIR/wordpress/* $RDIR/");

mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);mysql_select_db($DB_NAME);
$result = mysql_query("select option_value from ".$DB_TABLE."options where option_name='siteurl'");
$row = mysql_fetch_array($result);
$siteurl=stripslashes($row['option_value']);

$ch1=curl_init();
curl_setopt($ch1,CURLOPT_URL,"$siteurl/wp-admin/upgrade.php?step=1&backto=");
curl_setopt($ch1,CURLOPT_RETURNTRANSFER,1);
$buf=curl_exec($ch1);
curl_close($ch1);
};
?>

Изходът е ето това:

###########################################################################
######## Mass WordPress Updater ver. 0.1 by amri -- www.mpetrov.net ########
###########################################################################

Downloading Latest WordPress …
Update WordPress blogs 1/12
Backup Old WordPress (/var/www/sait1.com/) DB: sait1DB
Backup Old WordPress (/var/www/sait1.com/) Files
Replace Old WordPress(/var/www/sait1.com/) Files
Update WordPress blogs 2/12
Backup Old WordPress (/var/www/sait2.com/) DB: sait2DB
Backup Old WordPress (/var/www/sait2.com/) Files
Replace Old WordPress(/var/www/sait2.com/) Files
Update WordPress blogs 3/12
Backup Old WordPress (/var/www/sait3.com/) DB: sait3DB
Backup Old WordPress (/var/www/sait3.com/) Files
Replace Old WordPress(/var/www/sait3.com/) Files
….

Може да го изтеглите от тук: wordpress_mass_upgrade

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

за Добруджа

Интересна публикация за Добруджа:

Заключена от долното течение на Дунав и Черно Море , в триъгълника между Балчик, Силистра и Дунавското устие, Добруджа е земята, на която през VII в. за пръв път са стъпили конниците на Аспарух и основали българската държава….

Източник:dobrudja-news.com

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

WordPress проблем с upload

Преместих блога на друга машина и като реших да кача тази снимка ми върна това съобщение:

“File.gif” не успя да бъде качен поради грешка
Неуспешно създаване на директория /var/www/wp-content/uploads/2011/12. Имате ли право да пишете в родителската ѝ категория?

Решението е просто да се каже какъв е абсолютния път на блога в базата:

update wp_options set option_value='/new_www/wp-content/uploads' where option_name='upload_path';

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

php засичане енкодинг на текст

function detect_encoding($string)
{
return strtolower(mb_detect_encoding("$string",'utf-8,windows-1251'));
}//End of detect_encoding($string)

$string="мартин петров";#stringa e windows1251;
echo detect_encoding($string);
//Shte wyrne windows-1251, ako stringa e utf-8 shte wyrne utf-8

 

function cp1251_to_utf8($s)
{
if ( mb_check_encoding("$s","cp1251") == 1){return iconv("cp1251","utf8",$s);}else { return $s; };
}
function utf8_to_cp1251($s)
{
if ( mb_check_encoding("$s","utf-8") == 1){return iconv("utf8","cp1251",$s);}else{return $s;}
}//End of utf8_to_cp1251($s)

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Без www в нашите адреси чрез htaccess

Идеята е да се премахне "www." от всеки адрес т.е. когато се отвори http://www.example.com да редиректне към http://example.com

Ето няколко причини защо да не се ползва "www":

1. По- къси адреси
2. Предотвратяване възможността за дублирано съдържание

.htaccess метод за редирект от www.example.com -> example.com

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

.htaccess метод за редирект от example.com -> www.example.com

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Инсталиране на Opencart 1.4.9.5 (May 10, 2011) и добавяне на Български Език

Малка статия за инсталиране на Opencart с Български език . За хората които незнаят какво е това с едно изречение ще кажа: OpenCart е Open Source Онлайн магазин.

Статията е проста за изпълнението. Единствено трябва да се изпълняват стъпките 🙂  ( е има неща които не са написани сигурно, но се подразбира, че се знаят). Успех 🙂

# Инсталиране на Opencart 1.4.9.5 (May 10, 2011)

1. Изтегляне и разархивиране на пакета

wget http://opencart.googlecode.com/files/opencart_v1.4.9.5.zip
unzip opencart_v1.4.9.5.zip

2. Сетване не по- долу изброените права на съответните директории

chmod 0777 image/
chmod 0777 image/cache/
chmod 0777 image/data/
chmod 0777 system/cache/
chmod 0777 system/logs/
chmod 0777 download/
chmod 0777 config.php
chmod 0777 admin/config.php

3. Отваря се инсталацията т.е. http://example.com/
въвежда се MySQL user , pass, database и table префикс, admin pass и админ email

4. Изтрива се директорията install

rm -fr install

# Opencart 1.4.9.5 и добавяне на Български Език

5. Изтегляме Българския Lang файл

Линк на сайта е: http://www.opencart.com/index.php?route=extension/extension/info&extension_id=623&filter_username=containR

За да се изтегли:

wget 'http://www.opencart.com/index.php?route=extension/extension/download&extension_download_id=4321' -O bg.zip

6. Разархивира се сваления файл и съдържанието му се кача съответно в "admin\language" и "catalog\language" .

7. Настройки на езика от административния панел (http://example.com/admin/):

От административния панел на магазина se изберa System -> Localisations -> Languages -> Insert.
Попълват се полетата:
Language Name: Bulgarian
Code: BG
Locale: bg.UTF-8,BG,bulgarian
Image: bg.png
Directory: bulgarian
Filename: bulgarian
Status: Enabled
Sort Order: 1

8. Сетване, че ще се ползва Българският lang файл

System -> Settings -> Locale
Language: Bulgarian
Administration Language: Bulgarian

PS: Езиковата версия е за Opencart 1.4.9.1, но работи без проблем(поне аз не видях такъв)

VN:F [1.9.22_1171]
Rating: 5.0/5 (3 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Какво е ezSQL и как да го ползваме

Какво е ezSQL?

ezSQL е Open Source PHP клас за връзка с бази данни. Негов автор е Justin Vincent. Този клас поддържа следните бази данни: МySQL, Oracle8, SQLite (PHP).

Защо да ползваме ezSQL?
1. С него се пести време при писането на PHP код.
2. Поддържа кеширане на SELECT заявките.
3. Напълно безплатен, с възможност да се ползва абсолютно във всички възможни проекти.
4. Има възможност за debug .
5. Класа ezSQL поддържа Smarty.
6. Много малък и простичък клас които е напълно функционален и лесен за редактиране при необходимост 🙂
7. Използването на DB абстрактен слой позволява лесното мигриране от една DB към  друга. Пример: Необходимо е мигриране от Oracle към MySQL. В този случай единственото необходимо нещо да се направи е include на подходящия допълнителен клас към ezSQL.
8. За мен WordPress е сериозен пример за добър проект писан от добри PHP разработчици и именно това дава една положителна точка на ezSQL , понеже DB класа на WordPress "wpdb" е базиран на ezSQL.
9. Чрез ezSQL се пести доста код.

За да не изпадам в излишна теория и обща информация ще започна с примерите(в този случай примерите са най- добрата документация):

Първо трябва да се изтегли ezSQL класа от официалния сайт на Justin Vincent-> Сайт на ezSQL

След като се изтегли е необходимо в нашия пример да се включи( (include) ядрото на ezSQL (ez_sql_core.php) и след това базата с която ще се работи(в случая е MySQL: (ez_sql_mysql.php) ):

include_once "../shared/ez_sql_core.php";
include_once "ez_sql_mysql.php";
$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');

Сега вече можем да правим примера.

1. Простa INSERT/UPDATE заявка:

$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'Ribok','root@boogle.com')");

или

$db->query("UPDATE users SET name = 'Ribok' WHERE id = 4");

2. SELECT заявка за извеждане на един ред:

$user = $db->get_row("SELECT name, email FROM users WHERE id = 4");

echo $user->name;
echo $user->email;

3. Бързо асоцииране на променлива с резултат от просто select с един ред:

$var = $db->get_var("SELECT count(*) FROM users");

echo $var;

4. SELECT заявка и извеждане на многобройни редове:

$results = $db->get_results("SELECT name, email FROM users");

foreach ( $results as $user )
{
echo $user->name;
echo $user->email;
}

5. Select заявка за конкретна колона:

foreach ( $db->get_col("SELECT name,email FROM users",0) as $name )
{
echo $name;
}

6. Изследване на заявките, чрез DEBUG(Активира се по- следния начин):

$db->debug();

7. Активиране на кеширането на заявки:

$db->cache_timeout = 24;
$db->cache_dir = '/tmp/ezsql_cache';
$db->use_disk_cache = true;
$db->cache_queries = true;

Времето се измерва в часове, но ако желаете да бъде в секунди е необходимо да се направи малка корекция.
Във файл "ez_sql_core.php" ,  ред "317" се заменя:

if ( (time() -- filemtime($cache_file)) > ($this->cache_timeout*3600) )

със:

if ( (time() -- filemtime($cache_file)) > ($this->cache_timeout) )

PS0: Ако някои има някакви допълнения или коментари може да ги сподели.

PS1: В никакъв случай не твърдя, че това е най- страхотния клас, защото има и други добри като AdoDB които е с доста дълга история. Идеята на това ръководство е да бъде в полза на някои търсещ или ползващ такъв клас :).

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Български социални мрежи на обща тематика

Със Captcha:

http://www.predpriemach.net/
http://rssbg.net
http://moiat.com/

Без Captcha:

http://svejo.net
http://ping.bg
http://nishto.net
http://lubimi.com
http://osveji.com
http://sports-bg.com
http://www.bghot.net
http://www.trohi.com
http://www.ezitura.com
http://novoto.net
http://feedscraft.com
http://nakafe.net
http://lubimo.net
http://svejo.itplace.info
http://bgbox.info/
http://dao.bg
http://www.twist.bg
http://griji.com
http://it.linkovete.com
http://web-bg.com
http://www.bgseo.net
http://www.mrejo.net
http://nachalo.net
http://www.hubavden.com
http://www.zdravei.net
http://ezotera.info
http://diggbg.com
http://www.relacia.com
http://www.renebu.com
http://markirai.com
http://www.free-network.info
http://elada.info/

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)