User Tools

Site Tools


ru:hints

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ru:hints [2017/03/21 08:50]
admin [Direct links for toplist]
ru:hints [2023/02/13 08:44] (current)
admin [Page tracking]
Line 1: Line 1:
 +====== Hints ======
 +
 +(Бес)полезные советы. Частично это конечно повторение известных вещей, но тем не менее ...
 +
 +===== Инклуды в пхп файлах =====
 +
 +Уже не первый раз сталкиваюсь с конструкциями вида
 +
 +include('http://otherdomain/1.html');
 +
 +или
 +
 +virtual('/scj/top/top.html');
 +
 +причем таких конструкций может быть по 10 штук на темплейт. От скрипта это не зависит, так не надо делать вообще.
 +
 +**Почему:**
 +
 +ПХП отрабатывает ДО того как серфер получает страницу. Поэтому если у вас есть include('http://otherdomain/1.html'), который находится на другом сервере вы получаете задержку в отдаче страницы. А если по какой-то причине этот другой домен еще и решил притормозить, то у вас найнет тормозить в отдаче и оригинальный домен.
 +
 +Даже если otherdomain на том же серваке, то как и в случае virtual('/scj/top/top.html'), на 1 запрос к серваку у вас получается как минимум 2: 1 запрос конкретно к вашему домену + 1 запрос include('http://otherdomain/1.html') или virtual('/scj/top/top.html').
 +
 +Если у вас 10 инклудов вида virtual('/scj/top/top.html') то у вас сервак на 1 реальный запрос выполняет каждый раз еще 10 подзапросов. Как это отражается на нагрузке думаю объяснять не надо.
 +
 +
 +**Как надо делать:**
 +
 +всегда юзать только локальные инклуды. Те virtual('/scj/top/top.html') надо делать как include('/home/user/domain/scj/top/top.html');
 +
 +если надо инклудить файлик с дургого домена который на том же серваке - аналогично, просто другой путь.
 +
 +Если файл на другом серваке то попросить админа прописать копирование этого файла по крону на локальный домен и опять же делать локальный инклуд.
 +
 +**еще вариант**
 +
 +readfile('http://domsin/1.html') - это аналогично include('http://...')
 +
 +
 +**Как обработать параметры**
 +
 +обычно банероротаторы инклудят через JS, но некоторые локальные ротаторы требуют инклуда в темплейте и их инклудят вида
 +
 +<?php
 +include('http://domain.com/banner.php?x=3&y=2');
 +?>
 +
 +поскольку это не совсем хороший вариант лучше сделать так
 +
 +<?php
 +$_GET['x'] = 3;
 +$_GET['y'] = 2;
 +include('banner.php');
 +?>
 +
 +таким образом и параметры передать, и инклуд сделать локальным, а не через http.
 +
 +
 +===== Запрет доступа для опредленных стран =====
 +
 +в .htaccess 
 +
 +<code>
 +RewriteEngine on
 +RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN)$ [NC] 
 +RewriteRule ^$ http://google.com [R,L]
 +</code>
 +
 +===== Rotate pages for raws (unique timelife) =====
 +
 +Часто сайты трейдят в узких нишах и на один и тот же cqn один и тот же серфер приходит несколько раз, но из разных источников. Для таких неуникальных посетителей иногда имеет смысл ротировать страницу. Те создать например 2 дизайна и уникам показывать 1, а неуникам 2 (3 4 5.. ).
 +
 +Для этого в Settings -  CJ pages можно вписать 2 и более строк, по одному дизайну на строку
 +
 +<code>
 +/home/user/domain/design1.html
 +/home/user/domain/design2.html
 +/home/user/domain/design3.html
 +</code>
 +
 +и при первом заходе юзер видит дизайн1 , при втором - 2 и так далее.
 +
 +Если вы используете внутренюю ротацию есть 2 варианта.
 +
 +1. В Rotation - Tube - Tube Settings тестовая опция ротирования страниц для равов. Смысл в следующем: если у вас на индексе тумбы и приходит рав, то автоматически ему показывает 2ю страницу. Если видел 2ю, то 3я, и так далее. Аналогично для категорий: если приходит прямо на категорию и данную страницу категории уже видел - показываем ему следующую. NOTE! Это правило срабатывает только в том случае, если реферер не ваш домен. Сделано дабы человек кликая с морды на тумбу категории всегда видел эту тумбу на открывшейся странице (те ему надо видеть первую страницу категории). 
 +
 +
 +2. Только индексная страница как в стриме например.
 +делаем Х файлов вида 
 +
 +<code>
 +domain/1.php
 +
 +<?php
 +$_GET['page'] = 1;
 +include('/scj/cgi/index.php');
 +
 +domain/2.php
 +<?php
 +$_GET['page'] = 2;
 +include('/scj/cgi/index.php');
 +
 +и прописываем CJPages 
 +
 +/home/user/domain/1.php
 +/home/user/domain/2.php
 +
 +и так далее
 +
 +</code>
 +
 +
 +===== Direct links for toplist =====
 +
 +Если надо сделать ссылки на трейдеров не через аут, то такие клики можно считать используя AJAX
 +
 +Пример топа 
 +
 +<code>
 +<a target=_blank href='_MEMBER_1_URL' class='domain_css' trader='_MEMBER_1_'>test</a>
 +</code>
 +
 +
 +из чего получаем результат вида
 +
 +<code>
 +<a target=_blank href='http://somedomain.com/' class='domain_css' trader='somedomain.com'>test</a>
 +</code>
 +
 +
 +те линки прямые. Теперь, что бы учитывать эти клики надо добавить код, который будет выполнять AJAX запрос
 +
 +<code>
 +
 +<script src='/YOUR_FOLDER/includes/js/jquery.js'></script>
 +
 +<script type="text/javascript">
 +$(document).ready(function(){   
 + $('.domain_css').each(function(){
 + $(this).on('click', function(){
 + $.get('/YOUR_FOLDER/cgi/out.php?member=' + $(this).attr('trader'),
 + {
 + },
 +   function(data) {
 +   }
 + );
 +
 +
 + });
 + });
 +
 +});
 +
 +</script>
 +
 +</code>
 +
 +
 +
 +Те тут главное моменты:
 +  * поменять YOUR_FOLDER
 +  * каждый линк с топе имеет класс class='domain_css' и поле trader='somedomain.com' 
 +  * потом по этому классу вешается событие на клик $('.domain_css').each(function(){
 +
 +===== Page track =====
 +
 +Можно проследить на какую страницу приходит траффик и какие есть переходы на сайте. 
 +
 +В Trade - Statistics - Page Track 2 колонки: Inbound Views (если реф не наш сайт) and Local Views (если реф - наш сайт)
 +
 +Есть 2 варианта
 +
 +1. &page_track=... в урле 
 +
 +2. в темплейте таг <!--PAGE_TRACK_....--> 
 +
 +На данный момент есть варианты
 +
 +  <!--PAGE_TRACK_CURRENT_PAGE--> 
 +  <!--PAGE_TRACK_CATEGORY--> 
 +  <!--PAGE_TRACK_любое_слово--> 
 +  
 +
 +
 +