false , # список файлов ядра 'modules_list' => false , # список файлов модулей 'files_list' => false , # список незагруженных файлов 'blocks_list' => false , # список незагруженных блоков 't3feed_conf' => false # основные настроки ); # состояние изменения баз данных (только для текстовых баз данных) $db_change = array( 'db_blocks' => false , # тексты блоков 'db_leads' => false , # список неотправленных лидов 'db_click' => false , # список неотправленных кликов 'db_redirect' => false # список правил редиректа ); $pos = -1; if(is_file("t3feed/conf/t3feed_conf.cfg")) { include "t3feed/conf/t3feed_conf.cfg"; $option['ROOT_DIR'] = $t3feed_conf['root_dir']; } else { # определение директории for($i=0;$i=0) { if(substr($_SERVER['REQUEST_URI'],$i,1)=="?") { $option['ROOT_DIR'] = substr($_SERVER['REQUEST_URI'],0,$pos+1); $i = strlen($_SERVER['REQUEST_URI']); } else if($i==strlen($_SERVER['REQUEST_URI'])-1) { $option['ROOT_DIR'] = substr($_SERVER['REQUEST_URI'],0,$pos+1); $i = strlen($_SERVER['REQUEST_URI']); } } } } # host + dir if($option['ROOT_DIR']=="/")$server_url = $_SERVER['HTTP_HOST']; else $server_url = $_SERVER['SERVER_NAME'] . $option['ROOT_DIR']; $option['idpart'] = ""; # id раздела $option['rootdir'] = $_SERVER['DOCUMENT_ROOT'] . $option['ROOT_DIR']; # корневая директория $option['kerneldir'] = "t3feed"; # директория ядра $option['rootdir'] = dirname($_SERVER['SCRIPT_FILENAME']).'/'; session_start(); # Домены серверов if(substr($_SERVER['DOCUMENT_ROOT'],0,15)=="D:/web/project/" && $_SERVER['REMOTE_ADDR']="127.0.0.1") { # приват зона $server_t3leads = "t3leads.lh"; $server_download = "load.t3leads.com"; } else { # общая зона $server_t3leads = "t3leads.com"; $server_download = "load.t3leads.com"; } ################################################################################ ################################################################################ ################################################################################ ### ### ### Основные функции, разбора простого XML, загрузки файлов и блоков ### ### ### ################################################################################ ################################################################################ ################################################################################ # Функция парсинга простого, одновложенного XML # # $xml - XML строка # $node - узел первого уровня # $nodes - массив вложенных узлов # function XML_Parser_Lite($xml,$node,$nodes,$flag="U") { $regexp = "/\<$node\>(.+)\<\/$node\>/$flag"; preg_match_all($regexp, $xml, $matches); $_node = $matches[1]; for($i=0;$i
"; #var_export($files); #print "

"; # загрузка файлов налету for($i=0;$i 32) { $control_code = substr($file_text,$content_length-32,32); $content = substr($file_text,0,$content_length-32); if (md5($content) == $control_code) { $file = fopen($option['rootdir'] . "t3feed/" . $files[$i]['path'], "wb"); flock($file,LOCK_EX); fwrite($file, $content); flock($file,LOCK_UN); fclose($file); @chmod($option['rootdir'] . "t3feed/" . $files[$i]['path'],0777); } else { $download_all = false; } } else { $download_all = false; } } if($files[$i]['type']=="modules") { $module_download_now = "now"; include_once $option['rootdir'] . "t3feed/" . $files[$i]['path']; $module_download_now = ""; } } if ($download_all) { if ($timestamp>10000000) $t3feed_conf['kernel_ts'] = $timestamp; else $t3feed_conf['kernel_ts'] = time(); $t3feed_conf["this_kernel_ts"] = time(); } return $download_all; } ################################################################################ ################################################################################ # Загрузка файлов function t3load_files($ts,$id_style,$load) { global $t3feed_conf,$server_download,$option,$files_list,$conf_change; $contents = t3_fileopen($server_download,80,"/style_files?id=$id_style&ts=$ts",5); $files = XML_Parser_Lite($contents,"file",array("path","auto")); $download_all = true; $regexp = "/\(.+)\<\/timestamp\>/U"; preg_match($regexp, $contents, $matches); $timestamp = $matches[1]; $t3feed_conf['files_ts'] = $timestamp; $t3feed_conf["this_files_ts"] = time(); //print $contents . "

"; //var_export($files); for($i=0;$i/n"; if($files[$i]["auto"]=="true" || $load==true) { # загрузка файлов налету $file_text = t3_fileopen($server_download,80,"/resource/$id_style/" . $files[$i]['path'],5); if (strlen($file_text)>0) { $file = fopen($option['rootdir'] . "resource/" . $files[$i]['path'], "wb"); flock($file,LOCK_EX); fwrite($file, $file_text); flock($file,LOCK_UN); fclose($file); @chmod($option['rootdir'] . "resource/" . $files[$i]['path'],0777); } } else { # пополнение списка незагруженных файлов # поиск присутстивя файла в массиве if(!in_array($files[$i]['path'], $files_list)) { # Добавление файлов в список незагруженных $files_list[] = $files[$i]['path']; $conf_change['files_list'] = true; } } } if ($download_all) { if ($timestamp>10000000) $t3feed_conf['files_ts'] = $timestamp; else $t3feed_conf['files_ts'] = time(); $t3feed_conf["this_files_ts"] = time(); } return $download_all; } ################################################################################ ################################################################################ # Заргузка блоков function t3load_blocks($ts,$id_style,$load) { global $t3feed_conf,$server_download,$option,$blocks_list,$conf_change,$db_blocks; $contents = t3_fileopen($server_download,80,"/style_texts?id=$id_style&ts=$ts",5); $texts = XML_Parser_Lite($contents,"text",array("id","auto")); $regexp = "/\(.+)\<\/timestamp\>/U"; preg_match($regexp, $contents, $matches); $timestamp = $matches[1]; $t3feed_conf['blocks_ts'] = $timestamp; $t3feed_conf["this_blocks_ts"] = time(); //var_export($texts); # список блоков for($i=0;$i

"; //var_export($text); //print "





"; if($text[0]['txt']!='') # не сохранять пустые блоки, т. к. это скорее всего ошибка { # добавление или изменение текстового блока в текстовой ьазе данных $db_change['db_blocks'] = true; $db_blocks[$id] = $text[0]; //var_export($text[0]); } } else { $txt = @quote_smart($text[0]['txt']); $title = @quote_smart($text[0]['title']); $parent = @quote_smart($text[0]['parent']); if($txt!='') # на случай падения сервера во время загрузки блока, чтобы старый блок не потерялся, если блок пустой, его не сохранять { # поиск блока с именем = $id в базе данных $Q = "select count(*) from " . $t3feed_conf["mysql_prefix"] . "db_blocks where id_part like '$id'"; $R = mysql_query($Q); $OK = mysql_result($R,0,0); if($OK=="1") { # блок со схожем имененм существует, изменение блока $Q = "update `" . $t3feed_conf["mysql_prefix"] . "db_blocks` set `txt`='$txt',`title`='$title',`parent`='$parent' where `id_part`='$id'"; mysql_query($Q); } else { # блока с данным имененм нет, добавление блока $Q = "insert into `" . $t3feed_conf["mysql_prefix"] . "db_blocks` (`id_part`,`txt`,`title`,`parent`) values ('$id','$txt','$title','$parent')"; mysql_query($Q); } mysql_free_result($R); } } } ################################################################################ ################################################################################ # сохранение всех конфигов function save_all_configuration() { global $conf_change,$kernel_list,$modules_list,$files_list,$blocks_list,$t3feed_conf,$option; # список файлов ядра if($conf_change['kernel_list']==true) { $configuration_string = ''; # сохранение файла конфигурации $file = fopen($option['rootdir'] . "t3feed/conf/kernel_list.cfg", "w"); flock($file,LOCK_EX); fwrite($file, $configuration_string); flock($file,LOCK_UN); fclose($file); } # список файлов модулей if($conf_change['modules_list']==true) { $configuration_string = ''; # сохранение файла конфигурации $file = fopen($option['rootdir'] . "t3feed/conf/modules_list.cfg", "w"); flock($file,LOCK_EX); fwrite($file, $configuration_string); flock($file,LOCK_UN); fclose($file); @chmod($option['rootdir'] . "t3feed/conf/modules_list.cfg",0777); } # список файлов фида if($conf_change['files_list']==true) { $configuration_string = ''; # сохранение файла конфигурации $file = fopen($option['rootdir'] . "t3feed/conf/files_list.cfg", "w"); flock($file,LOCK_EX); fwrite($file, $configuration_string); flock($file,LOCK_UN); fclose($file); @chmod($option['rootdir'] . "t3feed/conf/files_list.cfg",0777); } # список блоков незагруженных if($conf_change['blocks_list']==true) { $configuration_string = ''; # сохранение файла конфигурации $file = fopen($option['rootdir'] . "t3feed/conf/blocks_list.cfg", "w"); flock($file,LOCK_EX); fwrite($file, $configuration_string); flock($file,LOCK_UN); fclose($file); @chmod($option['rootdir'] . "t3feed/conf/blocks_list.cfg",0777); } # список глобальных настроек if($conf_change['t3feed_conf']==true) { if (isset($t3feed_conf['login']) && isset($t3feed_conf['password']) && isset($t3feed_conf['db_type']) && isset($t3feed_conf['auto_download']) && isset($t3feed_conf['style_id'])) { $configuration_string = ''; # сохранение файла конфигурации $file = fopen($option['rootdir'] . "t3feed/conf/t3feed_conf.cfg", "w"); flock($file,LOCK_EX); fwrite($file, $configuration_string); flock($file,LOCK_UN); fclose($file); @chmod($option['rootdir'] . "t3feed/conf/t3feed_conf.cfg",0777); } } } ################################################################################ ################################################################################ # закрыть соединение с базой данных, если это txt БД, то сохранить измененные данные function db_close() { global $option,$t3feed_conf,$db_change,$db_blocks,$db_leads,$db_click,$db_redirect; if($t3feed_conf['db_type']=="mysql") { @mysql_close(); } else { # перезаписать, или создать файлы массивов в которых произошли изменения $db_change_keys = array_keys($db_change); for($i=0;$i';"); # сохранение базы данных $file = fopen($option['rootdir'] . "t3feed/db/" . $db_change_keys[$i] . ".cfg", "w"); flock($file,LOCK_EX); fwrite($file, $configuration_string); flock($file,LOCK_UN); fclose($file); @chmod($option['rootdir'] . "t3feed/db/" . $db_change_keys[$i] . ".cfg",0777); } } } } ################################################################################ ################################################################################ # function un_magic_quotes_gpc($value) { if(get_magic_quotes_gpc()) { $value = stripslashes($value); } return $value; } ################################################################################ ################################################################################ # закрыть соединение с базой данных, если это txt БД, то сохранить измененные данные function doload() { global $t3feed_conf,$conf_change; # дозагрузка ядра if(time()>$t3feed_conf['this_kernel_ts']+$t3feed_conf['kernel_load_limit']) { # поиск файлов для дозаливки ядра $download_all = t3load_kernel($t3feed_conf['kernel_ts']); # изменить время последнего изменения ядра if ($download_all) { $t3feed_conf['this_kernel_ts'] = time(); $conf_change['t3feed_conf'] = true; } } # дозагрузка файлов стиля if(time()>$t3feed_conf['this_files_ts']+$t3feed_conf['files_load_limit']) { # поиск файлов для дозаливки ядра $download_all = t3load_files($t3feed_conf['files_ts'],$t3feed_conf['style_id'],$t3feed_conf['auto_download']); # изменить время последнего изменения ядра if ($download_all) { $t3feed_conf['this_files_ts'] = time(); $conf_change['t3feed_conf'] = true; } } # дозагрузка блоков стиля if(time()>$t3feed_conf['this_blocks_ts']+$t3feed_conf['files_load_limit']) { # поиск файлов для дозаливки ядра t3load_blocks($t3feed_conf['blocks_ts'],$t3feed_conf['style_id'],$t3feed_conf['auto_download']); # изменить время последнего изменения ядра $t3feed_conf['this_blocks_ts'] = time(); $conf_change['t3feed_conf'] = true; } } ################################################################################ ################################################################################ # Проверка установлен ли фид: if(is_dir($option['rootdir']. $option['kerneldir'])) { # загрузка файлов конфигурации include $option['rootdir']. $option['kerneldir'] . "/conf/t3feed_conf.cfg"; # Основные настройки include $option['rootdir']. $option['kerneldir'] . "/conf/blocks_list.cfg"; # Незагруженные блоки include $option['rootdir']. $option['kerneldir'] . "/conf/files_list.cfg"; # Незагруженные файлы include $option['rootdir']. $option['kerneldir'] . "/conf/modules_list.cfg"; # Список модулей include $option['rootdir']. $option['kerneldir'] . "/conf/kernel_list.cfg"; # Список файлов ядра # подключение к базе данных if($t3feed_conf["db_type"]!="mysql") { $t3feed_conf["db_type"] = 'text'; # подключение основных массивов данных include $option['rootdir']. $option['kerneldir'] . "/db/db_blocks.cfg"; # Блоки include $option['rootdir']. $option['kerneldir'] . "/db/db_leads.cfg"; # Неотправленные лиды include $option['rootdir']. $option['kerneldir'] . "/db/db_click.cfg"; # Неотправленная информация о посещениях сайта include $option['rootdir']. $option['kerneldir'] . "/db/db_redirect.cfg"; # Записи о редиректе # закрываем все массивы для записи! $db_change = array( 'db_blocks' => false , # тексты блоков 'db_leads' => false , # список неотправленных лидов 'db_click' => false , # список неотправленных кликов 'db_redirect' => false # список правил редиректа ); } else { # подключение к базе данных @mysql_connect($t3feed_conf["mysql_server"],$t3feed_conf["mysql_login"],$t3feed_conf["mysql_password"]); @mysql_select_db($t3feed_conf["mysql_database"]); } # дозагрузка doload(); # загрузка ядра for($i_loadkernel=0;$i_loadkernel0) { $error['dbPref'] = '1'; $error_array[] = lprint("Impossible MySQL Prefix tables","Недопустимые Префиксы таблиц"); } @mysql_free_result($R); } } @mysql_close(); } } # Feed login if(eregi("^([a-z0-9]){1,32}$",$feed_login)==false) { $error['feed_login'] = '1'; $error_array[] = lprint("Invalide Feed Login ( 1-9 a-z )","Недопустимый логин. (Только цифры и буквы латинского алфавита)"); } # Feed password if(eregi("^.{6,255}$",$feed_password)==false) { $error['feed_password'] = '1'; $error_array[] = lprint("Invalide Feed Password (min 6)","Недопустимый пароль. (Минимум 6 символов)"); } if(strlen($feed_title)<1 || strlen($feed_title)>256) { $error['feed_title'] = '1'; $error_array[] = lprint("Invalide Title (1-256 symbols)","Недопустимое название сайта. (1-256 Символов)"); } if(strlen($feed_descr)>512) { $error['feed_descr'] = '1'; $error_array[] = lprint("Invalide Description (0-512 symbols)","Недопустимая строка описание. (0-512 Символов)"); } if(strlen($feed_keys)>512) { $error['feed_keys'] = '1'; $error_array[] = lprint("Invalide Keywords (0-512 symbols)","Недопустимая строка кеи. (0-512 Символов)"); } if($error['feed_password']!="1") { # Feed confirm password if($feed_confirm_password!=$feed_password || eregi("^.{6,255}$",$feed_confirm_password)==false) { $error['feed_confirm_password'] = '1'; $error['feed_password'] = '1'; $error_array[] = lprint("Invalide confirm password","Пароли не совпадают"); } } # выбор стиля for($i=0;$i '*', 'keywords' => '*', 'redirect' => false, 'url' => '' ); # создание файлов (произойдет в конце создания фида!) # оставить открытые массивы, свободны для записи! $db_change = array( 'db_blocks' => true , # тексты блоков 'db_leads' => true , # список неотправленных лидов 'db_click' => true , # список неотправленных кликов 'db_redirect' => true # список правил редиректа ); } else { # подключение к базе данных mysql_connect($t3feed_conf["mysql_server"],$t3feed_conf["mysql_login"],$t3feed_conf["mysql_password"]); mysql_select_db($t3feed_conf["mysql_database"]); ### создание таблиц # таблица блоков $Q = "create table `" . $t3feed_conf["mysql_prefix"] . "db_blocks` (`id_part` varchar (128) NOT NULL ,`txt` text NULL ,`title` varchar (254) NOT NULL ,`parent` varchar (128) NOT NULL,`description` text NULL,keywords text NULL, PRIMARY KEY (`id_part`))"; mysql_query($Q); # таблица неотправленных запросов о лидах $Q = "create table `" . $t3feed_conf["mysql_prefix"] . "db_leads` (`idlead` int (11) NULL AUTO_INCREMENT,`postdata` text NULL,PRIMARY KEY (`idlead`))"; mysql_query($Q); # неотпавленная информация о кликах $Q = "create table `" . $t3feed_conf["mysql_prefix"] . "db_clicks` (`idclick` int (11) NOT NULL AUTO_INCREMENT,`postdata` text NULL,PRIMARY KEY (`idclick`))"; mysql_query($Q); # правила редиректа $Q = "create table `" . $t3feed_conf["mysql_prefix"] . "db_redirect` (`country` varchar (2) NOT NULL , `keywords` varchar (255) NOT NULL ,`reditect` enum ('true','false') DEFAULT 'false' NOT NULL ,`url` varchar (255) NULL,PRIMARY KEY (`country`,`keywords`))"; mysql_query($Q); # первое правило редиректа! (Отключение редиректа) $Q = "insert into `" . $t3feed_conf["mysql_prefix"] . "db_redirect` (`country`,`keywords`,`reditect`,`url`) values ('*','*','false','')"; mysql_query($Q); } # Загрузка файлов ядра t3load_kernel("0"); # Загрузка файлов t3load_files("0",$id_style,true); # Заргузка блоков t3load_blocks("0",$id_style,true); # для создания всех файлов конфигурации $conf_change = array( 'kernel_list' => true , 'modules_list' => true , 'files_list' => true , 'blocks_list' => true , 't3feed_conf' => true ); # сохранение всех конфигов save_all_configuration(); # закрыть соединение с базой данных, если это txt БД, то сохранить измененные данные db_close(); ?> T3Feed v. 2.0 <?=lprint("Installation complite","Установка завершена")?>
T3Feed v. 2.0 - .

.


Что нового в T3Feed?


  1. Теперь Вы имеете возможность сделать выбор между текстами, предлагаемыми нашей партнерской программой, и написанием собственных уникальных текстов. Кроме того, Вы можете создать свой уникальный дизайн.

  2. Контент фида расположен на стороне фида, что обеспечивает максимально высокую скорость загрузки страниц. В то же время, если вы намерены использовать тексты, предлагаемые нашей партнерской программой, то благодаря блочной синхронизации, сайт буден обновляться в течение одного часа.

  3. Если сервер занят в момент передачи данных по лиду, либо по трафику, информация помещается в хранилище, откуда передается позже.

  4. Вы можете настроить уникальные правила редиректа для каждого фида.

  5. Теперь в Вашем распоряжении неограниченные возможности для СЕО.

  6. What's new in T3Feed?

    1. Now you can choose between using the texts of our affiliate program and creating of your own texts. Besides you can create your own design for the feeds.

    2. Content of each feed is located on the feed's hosting that ensures the maximal speed of pages loading. Meanwhile, if you want to use the texts of our affiliate program, your website will be updating within one hour. This became available due to block synchronization.

    3. If the server is overloaded at the moment of data transmission, all information will be located in special filestore. The data will be transmitted a little bit later.

    4. You can make up unique rules of redirect for every feed.

    5. Now you have at your disposal unlimited capacities for SEO.

Copyright © , , 2007
T3Feed v. 2.0 <?=lprint("Installation","Установка")?> changeActiv('0');">
Rus | EngRus | Eng
T3Feed v. 2.0 .
  1. Задайте права 777 на корневую директорию фида. Фид мижно устанавливать как в корень так и в подкаталог сайта.
  2. Фид будет использовать 2 директории, одна из которых будет закрытая: ./t3feed, а другая открытая ./resource Создавать их не надо, но проследите чтобы они были доступны для PHP интерпритатора.
  3. Минимальные требования к програмному обеспечению: PHP.
  4. Для фида необходима 1 база данных. Так как для таблиц фида можно задавать прификсы, можно использовать не пустую базу данных.
  5. При создании фида вы должны выбрать логин и пароль, для входа в свой личный кабинет, который служит для изменения параметров, и детальной настроки фида. Пожалуста сохрание их в надежном месте. Доступ к панели управления: http://?mode=webmaster. Также логин и пароль можно использовать для досупу к фиду из специального интерфейса управления фидами, где вы сможите задавать параметры для одного, или сразу для нескольких фидов.
  6. Если этот домен (домен + директория) не зарегистрированны в партнерской программе t3leads как фид, то он зарегистрируется автоматически. Поля T3Login и T3Password обязательны если фид не зарегистрирован в партнерской программе.
  7. Для того чтобы зарегистрировать фид в системе управления фидов необходимо ввести T3Login и T3Password. Добавление фида в систему управления фидов позволит изменять значения сразу для группы фидов, это сэкономит ваше время.
  8. Set 777 rights for the root directory of feed. A feed can be installed in root directory or in website subdirectory.
  9. A feed will use two directories. One of them will be closed:./t3feed, and another one will be opened: ./resource. You aren't obliged to create these directories, but you should check if they are accessible for PHP interpreter.
  10. Minimal software requirements: PHP.
  11. You will need one separate database for a feed. You can use database with some data in it, because it's possible to set prefixes for the tables of feed.
  12. While installing a feed you will have to choose login and password. You will need it to enter your personal account. In personal account you can change different parameters and fix your feed. To enter administration panel click http://?mode=webmaster link. You can also use login and password to manage your feeds from a special interface of administration panel.
  13. If a domain (domain + directory) isn't registered in T3leads affiliate program, it will be registered in automatic mode. You will have to fill out T3Login and T3Password fields if feed isn't registered in our affiliate program.
  14. You should enter your T3Login and T3Password to register a feed in Feeds management system. You'll save your time if you add a feed in this system.
.
:
onchange="changeActiv('1');" onclick="changeActiv('1');"> MySQL onchange="changeActiv('0');" onclick="changeActiv('0');"> Text files
 
Server: " onFocus="this.style.background='#FFF';" value="">  
Login: " onFocus="this.style.background='#FFF';" value="">  
Password: " onFocus="this.style.background='#FFF';" value="">  
Database: " onFocus="this.style.background='#FFF';" value="">  
: " onFocus="this.style.background='#FFF';" value="">  
 
Domain + Dir:  
: /t3feed /t3feed /resource/resource  
:
:  
:
Style
 
   
   
   
   
: color:#999;" onFocus="this.style.background='#FFF';if(this.clickme!='1'){this.clickme='1';this.style.color='#000';this.value='';}" value="">  
: color:#999;" onFocus="this.style.background='#FFF';if(this.clickme!='1'){this.clickme='1';this.style.color='#000';this.value='';}" value="">  
: color:#999;" onFocus="this.style.background='#FFF';if(this.clickme!='1'){this.clickme='1';this.style.color='#000';this.value='';}" value="">  
()
T3Login: style="width:200px;border:#999 solid 1px;" onFocus="this.style.background='#FFF';">  
T3Password: " onFocus="this.style.background='#FFF';" value="">  
No account? Sign Up!Нет учетной записи ? Регистрация!  
: " onFocus="this.style.background='#FFF';" value="">  
: " onFocus="this.style.background='#FFF';" value="">  
: " onFocus="this.style.background='#FFF';" value="">  
" style="width:170px;height:40px;border:#999 solid 1px;background-color:#444;color:#EEE;font-size:18px;font-family:Arial;">
Copyright © , , 2007