Ajax Form Validation in Zend Framework

июля 30, 2007 by admin

Долго искал реализацию Ajax-валидации формы для Zend Framework. В нете очень много статей, но многие оставляют желать лучшего. Единственное очень грамотное решение, имхо, это - fValidator. Но, мне было в лом разбираться в коде, да и расширять его сложно. Поэтому, собрав со всех статей по кусочку идеи (ну и по кусочку кода :) ), решил написать свое решение.

Структура приложения должна быть примерно такая.

Для начала вы должны скачать последние версии библиотек Prototype.JS и Zend Framework.

Итак, серверная часть. index.php

<?php

error_reporting(0);date_default_timezone_set(’Asia/Almaty’);

set_include_path(’.’ . PATH_SEPARATOR . ‘../library/’. PATH_SEPARATOR . get_include_path() );

require_once(’Zend/Loader.php’);require_once(’Zend/View.php’);require_once(’Zend/Registry.php’);require_once(’Zend/Controller/Action/Helper/ViewRenderer.php’);require_once(’Zend/Controller/Action/HelperBroker.php’);require_once(’Zend/Controller/Router/Rewrite.php’);require_once(’Zend/Controller/Front.php’);

$view = new Zend_View(array(’encoding’ => ‘UTF-8′));$view->setScriptPath(’../application/views/’);Zend_Registry::set(’view’, $view);

$options = array(’viewSuffix’ => ‘tpl.php’);

$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view, $options);

Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

$frontController = Zend_Controller_Front::getInstance();$frontController->setControllerDirectory( array(‘ajaxFormValidate’ => ‘../application/controllers’));$frontController->throwExceptions(true);$frontController->dispatch();

?>

Файлы header.tpl.php

<html><meta http-equiv=”Content-Type” content=”text/html; charset=utf-8;”><link rel=”stylesheet” type=”text/css” media=”screen”href=”<?php echo $this->baseUrl;?>/styles/site.css” />

<head><script type=”text/javascript” src=”/js/prototype.js”></script><script type=”text/javascript” src=”/js/validator.js”></script>

<title><?php echo $this->escape($this->title); ?></title></head><body><div id=”content”>

и footer.tpl.php

</div></body></html>

Скрипт самой формы. _form.php

<script type=”text/javascript”>

window.onload = function() {$(’fname’).focus();}

function submitForm(form) {validator = new Validator(form,”<?=$this->url(array(’controller’ => ‘register’,'action’=>’validate’));?>”);return validator.validate();}</script>

<div id=”errorDiv”style=”display: none;”></div>

<fieldset><legend>Signup Form</legend><formaction=”<?=$this->url(array(’controller’ => ‘register’,'action’=>’success’));?>”name=”registerForm” id=”registerForm” method=”POST”onSubmit=”return submitForm(this);”><table style=”width:100%;”><tr><td><label for=”fname”><b>First Name:</b></label></td><td><?=$this->formText(’fname’,null,array(’size’=>30,’id’=>’fname’));?></td></tr><tr><td><label for=”lname”><b>Last Name:</b></label></td><td><?=$this->formText(’lname’,null,array(’size’=>30));?></td></tr><tr><td><label for=”email”><b>Email Address:</b></label></td><td><?=$this->formText(’email’,null,array(’size’=>30));?></td></tr><tr><td><label for=”password”><b>Password:</b></label></td><td><?=$this->formPassword(’password’,null,array(’size’=>30));?></td></tr><tr><td align=”right”><?=$this->formSubmit(’signup’,'Sign Up’);?></td><td colspan=”2″ align=”right”> </td></tr></table></form></fieldset>

В форме на событие onSubmit срабатывает handler, который грузит функцию submitForm().

В свою очередь, функция создает класс нашего валидатора и передает ей указатель на нашу форму и урл для валидации, а затем запускает метод validate().

Ну а теперь сам validator.js

var Validator = Class.create();

Validator.prototype = {form: ”,url: ”,

initialize: function(form,url) {this.form = $(form);this.url = url;},

validate: function() {var params = Form.serialize(this.form);var req = new Ajax.Request(this.url,{method : ‘POST’,parameters : params,onSuccess : this.processForm.bind(this)});return false;},

processForm: function(xhr) {

var errors = eval( ‘(’ + xhr.responseText + ‘)’ );this.errors = errors;if(!errors) {this.form.submit();} else {this.showErrors(errors);}},

showErrors: function(errors) {

var elementList = Form.getElements(’registerForm’);for ( var i=0; i< elementList.length; i++) {if ( $(’err_’+elementList[i].name) != null )Element.remove(’err_’+elementList[i].name);}

for ( var i = 0; i < errors.length; i++ ) {

var el = Element.up(errors[i].field);var err = “<div class=’error’ id=’err_”+errors[i].field+”‘>”+errors[i].value+”</div>”;

el.update(el.innerHTML + err);}}}

Метод validate() создает Ajax-запрос на урл для валидации и получает назад данные (об ошибках). Если респонс пустой, он отправит форму на submit(), в противном случае запускается метод showErrors(), который отображает все ошибки. С отображением ошибок я мучился целый день, так как никогда не работал с DOM. В конце концов, почитав api Prototype.JS у меня получилось с его помощью добавлять информацию об ошибках. Конечно, можно было бы использовать скрытые div-ы, но я счел этот выход не самым лучшим.

Теперь RegisterController.php
Основной скрипт серверной части нашего примера.

<?php

require_once(’Zend/Json.php’);require_once(’Zend/Filter/Alnum.php’);

class RegisterController extends Zend_Controller_Action {

function init() {

$view = Zend_Registry::get(’view’);$view->baseUrl = $this->_request->getBaseUrl();}

public function validateAction() {

$errors = $this->getErrors($_POST);if(count($errors) == 0) $errors = false;//print_r($errors);echo Zend_Json::encode($errors);}

public function successAction() {$view = Zend_Registry::get(’view’);}

function indexAction() {

$view = Zend_Registry::get(’view’);$view->title = ‘Регистрация’;}

protected function getErrors($values) {

$errors = array();if(!preg_match(’/^[a-z]+[a-z 0-9-_]*$/i’,$values[’fname’])) {$errors[] = array(’value’ => ‘First Name is required and may only contain letters, numbers, and spaces’, ‘field’ => ‘fname’);}if(!preg_match(’/^[a-z]+[a-z 0-9-_]*$/i’,$values[’lname’])) {$errors[] = array(’value’ => ‘Last Name is required and may only contain letters, numbers, and spaces’, ‘field’ => ‘lname’);}if(!preg_match(’/^[_a-zA-Z-]+[._a-zA-Z0-9-]+@[a-zA-Z0-9-]+\.[.a-zA-Z0-9]+$/’,$values[’email’])) {$errors[] = array(’value’ => ‘Email is required and must be a valid email address’, ‘field’ => ‘email’);}Zend_Filter_Alnum::__construct();if(!Zend_Filter_Alnum::filter($values[’password’]) || (strlen($values[’password’]) < 6) || (strlen($values[’password’]) > 12)) {$errors[] = array(’value’ => ‘Password must consist of only letters and numbers and must be between 6 and 12 characters’, ‘field’ => ‘password’);}return $errors;}

public function noRouteAction() {

echo “404, yo.  That’s not a valid URL”;}

}?>

Как вы видите, запрос валидатора обрабатывает метод validateAction(). Проверив значения полей и получив ошибки, если такие существуют, он кодирует данные в формат JSON и возвращает их клиенту.

Теперь файлы view-шек.

index.tpl.php

<?php echo $this->render(’header.tpl.php’); ?><h1><?php echo $this->escape($this->title); ?></h1><?php echo $this->render(’register/_form.php’); ?><?php echo $this->render(’footer.tpl.php’); ?>

success.tpl.php

<html><head><title>Success!</title></head><body>

Ok! <a href=”<?=$this->url(array(’controller’ => ‘register’,'action’=>”));?>”>Back</a>

<body></html>

К сожалению, я пока не смог настроить noRender, поэтому тупо создал пустой файл

validate.tpl.php

Файл стилей site.css

body,html {font-size:100%;margin: 0;font-family: Verdana,Arial,Helvetica,sans-serif;color: #000;background-color: #fff;}.error {background-color: rgb(244, 225, 225); border: 1px solid rgb(204, 0, 0);padding: 0.2em; color: rgb(204, 0, 0);}h1 {font-size:1.4em;color: #800000;background-color: transparent;}#content {width: 770px;margin: 0 auto;}label {width: 100px;display: block;float: left;}#formbutton {margin-left: 100px;}a {color: #800000;}

В результате получается примерно вот это:

Ой, забыл!

В папке www .htaccess

RewriteEngine OnRewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Прошу задавать свои вопросы, если что не понятно. Если есть какие-то дополнения, то я буду рад исправить.

Статьи по теме: Ajax Form Validation Zend Framework

Posted in Без рубрики | No Comments »

12 языков программирования, которые потрясли мир (тем, что на них нельзя программировать)

июля 27, 2007 by admin

Отличный перевод, отличной статьи о непопулярных языках программирования.

Существует около 8 500 языков программирования (не удивляйтесь, данные не преувеличены), однако, несмотря на такое разнообразие, число языков, на которых пишет большинство, с трудом переваливает за десяток. Причин, почему тот или иной язык не стал популярным, ничуть не меньше, чем самих языков. Это и распри между их создателями, и плохо организованный процесс продажи, и появление новых технологий, и просто откровенная «кривизна».

В этой статье мы рассмотрим 12 языков программирования, которые не пользуются популярностью среди разработчиков, а также причины этой «нелюбви».

Posted in Без рубрики | No Comments »

Выкуп показов RLE через AdMedia. Первые деньжЫща с этой системы. :-)

июля 25, 2007 by admin

Завершился мой первый день эксперимента с выкупом РЛЕ показов через АдМедиа.
Цифирки заработка малые, вполне ожидаемые. Целых 5р. :-)
Сайт набрал 2.969 показов. Столько засчитано в РЛЕ. По LI на сайте было 3.800 хитов.
Из них 2000 выкупила АдМедиа по цене 2.5 за тысячу.
Поднял ставку до 3 р. за штуку, посмотрим что там будет с выкупом.
Спрашивается, чего мне с остальными 969 делать.. Видимо прийдётся через БанСток продавать. С ними я ещё не работал, чуть позже посмотрим, что за зверь.

Сейчас разбираюсь с парнёркой от ЛавПлэнет, штука интересная. Говорят ей траф неплохой собирать можно. Поживём увидим, о результатах переодически буду отписываться.

Отвлекаясь от темы. Сегодня спамовое сообщение по почте получил. Давненько так не смеялся. Приведу его содержание здесь, может кому-то тоже поднимет настроение.
Автор: Артём, тема “дома в инете полажу”. Тема имеет очень замысловатый и глубокий смысл, аффтар видимо всю ночь думал над названием. :-)
Вот сие творение:
привeт Татьяна!
да нopмально всe,тoлько выматалиcь сeгодня нa рaботе, aдмины чотa c кoмпoм нaтвоpили, кoе-кaк твoй адреc нaшелcя..((
никуда идти нe хочeтся, виктрыч caйт подкинул с пpикольной паpнушкой http://***.by.ru  ))глянь, как тебе?.. буду как-нить тaк вeчеp коpотaть..

Я ессно, не Татьяна :-))
Технологии, чёрт побери, не стоят на месте. Люблю это выражение.
Спам в таком виде давно уже не новость, просто содержание повеселило.

Posted in Без рубрики | No Comments »

Каталоги статей и заработок c них

июля 24, 2007 by admin

Последнее время испытываю повышенный интерес к теме каталогов статей. По-моему, тема эта весьма перспективна, особенно если поработать тут напильником в правильном направлении.

Вот два заслуживающих внимания на эту тему написал Бомж из Мерефы:
Каталог статей, продолжение.
Каталоги статей, мануал.

Он выделил интересную мысль о том, что пользователей условно можно разделить на группы и рекламу им выдавать разную (различное месторасположение и всё остальное, что из этого вытекает).

Мысль очень интересная, возможно она и покажется Вам через чур простой. Отнюдь! Идея отличная и главное рабочая, если проработать её и реализовать на должном уровне.

Самые важные вопросы в этом деле:
- чем наполнять?
- методы раскрутки?

Движок использовать можно любой (хоть мой :-) ), главное, чтобы поставленные цели решал. Поэтому в качестве основных вопросов я не касаюсь рассмотрения движков и хостингов.

Чем наполнять каталог? Откуда брать контент?

Здесь можно выделить несколько пунктов:
- Написание своих статей / копирайтинг;
Либо написание статей собственноручно, либо заказывать написание у копирайтеров, что может влететь в копеечку.
- Рерайтинг статей;
Опять же либо самостоятельно рерайтить статьи, либо заказывать.
- Общедоступные статьи;
Куча запущенных каталогов, где размещены статьи в свободном доступе. Берёте и копируете. А владельцы статей что? Да они ещё и спасибо скажут за распространение статей. Разве не для этого статьи пишут? (ссылку на автора статьи только не забывайте).
- “Фильтрованные” статьи с других каталогов;
Пункт очень похож на предыдущий с тем лишь отличием, что статьи пропускаются через специальный фильтр, который вносит какие-то изменения в статью, тем самым, получая уникальную статью.
Как кто-то недавно сказал (по-моему кто-то из “бомжей”, пом Якутский), что контент можно переводить в транслит :-) Интересная идейка. Но как вариант получения уникального контента, why not?
Можно использовать словарь синонимов. Тоже тема интересная. Где бы найти такой словарь в электронном исполнении?
Видел подобные словари под винду с закрытым форматом БД. Собсно пользы от таких..

Методы раскрутки каталогов статей?
Вопрос это не настолько простой как кажется. Как и где прописать каталог, чтобы его не только посещали, но ещё и сабмитили статьями?
Тут не прокатит такая штука как регишь каталог в 1пс, оллсубмиттере и получаешь кучу трафа/контента, а каталог фильтрует по стоп словам всю поступающую инфу, самостоятельно модерирует и вообще всё происходит на автопилоте. Такое с каталогами статей, пока что, не получится. Тема эта толком ещё не объезжена, поэтому серьёзных статейных сервисов (вроде 1пс для каталогов) ещё нет.
Что же с ним делать по части раскрутки?
- Выводить в топ поисковиков;
как по запросам “белый каталог сайтов” (и подобным), так и по запросам соответствующим тематике каталога.
- Наращивать ПР и тИЦ;

Какую прибыль с них можно извлечь?
- Продажа ссылок с главной, внутренних, сквозняков;
С главной продавать можно в кликсе или напрямую. Внутренние лучше через сэйп.
- Платное размещение статей;
Это актуально в том случае, если каталог раскручен (посещаем) и имеет хорошие показатели тИЦ и ПР, хотя бы на главной. Тогда статью лучше платно добавить в такой каталог, чем в тысячу каких-нибудь новоиспечённых тИЦ0, ПР0.
Конечно если на то пошло, то как говориться, одно другому не мешает, т.е. из этой тысячи кто-нибудь обязательно раскрутиться и “что-либо” передаст :-)
- Контекстная реклама;
Как контекстная так и любая другая реклама за клики или показы.

Короче говоря, методы заработка могут быть абсолютно любые, что и с обычных сайтов.

Тем временем совершенствую свой двиг каталога сайтов VXDCat, хочу в ближайшее время встроить в него штуку, которая будет автоматом в статье балансировать плотность нужных мне ключевых слов. С такой штукой в топы вылезать проще будет.
Вот собственно пока всё, что я хотел рассказать Вам про каталоги.

А на последок небольшое отвлечение от темы - несколько интересных новостей.

Спам никогда не исчезнет
Через 20 лет вы не будете получать спам по почте, но появятся другие механизмы доставки. Следующее поколение фильтров столкнётся с видеоконтентом. Как вы собираетесь анализировать mpeg?
Да да, всё верно. Не согласен только с недальновидным вопросом “Как вы собираетесь анализировать mpeg?”. Полагаю, через 20 лет научимся.
Спам это лёгкий (но и небезопасный) способ заработка. Он будет проявляться в разных вещах постоянно, реинкарнируя из одного вида в другой.
Кстати, не понятно почему “Через 20 лет вы не будете получать спам по почте”. Что через 20 лет этот вид отомрёт? Неужели до народа наконец-то дойдёт, что он бесполезный?

Из-за ошибок в Google Reader пользователи попадают в чужие аккаунты
Многие пользователи сообщают, что при использовании сервисов Gmail и Google Reader они попадают в аккаунты других людей, получая доступ ко всей хранящейся там информации.
Представляете себе так - пишешь, пишешь почту, перезагрузил страницу и уже в другом акке. Бац, а почта уже и не твоя. :-)
ГуглРидером не пользуюсь, RSS читаю через Akregator (линуксовый).
Из сервисов ГМэйл пользуюсь SMTP и POP3, ничего подобного не замечал. Может это только касаемо веб-интерфейса.

Следующая версия OC Windows выйдет в 2010 году
Корпорация Microsoft намерена завершить работы над новой программной платформой Windows 7 в течение трех лет.

Правительство выделяет 3 млрд рублей на лицензионное ПО в школах
Каждая российская школа до конца 2007 г. получит пакет лицензионного ПО для всех своих компьютеров. Бюджет проекта составил 3 млрд. руб.
Хорошо что правительство обратило внимание на эту проблему. А то уже порядком надоело читать новости про изъятие компов с нелицензионным ПО.

В США начали людям имплантировать микрочипы
Имплантация может начаться с людей, с болезнью Альцгеймера, но потом распространится на обвиняемых, условно-досрочно освобожденных, насильников, нелегальных иммигрантов – и, в конце концов, в один день большинство американцев, подпадая под ту или иную категорию, будут “помечены”.
Вот так раз. Началось. Честно говоря, как в фильмах ужасов.

Posted in Без рубрики | No Comments »

Эксперементирую с выкупом баннерных показов RLE (через AdMedia)

июля 24, 2007 by admin

Решил опробовать выкуп баннерных показов RLE через систему AdMedia. С баннерными показами когда-то я давно работал, но не особо он меня впечатлил. Последнее время в сети снова пошли разговоры о выкупе бан. показов, вот и решил в очередной раз испробовать.

В кратце, что здесь мы имеем. Вчера зарегился в РЛЕ, зарегился в АдМедиа. Честно говоря, соеденить две партнёрки, чтобы одна выкупала у другой был огромный гемор. Для меня эти интерфейсы новы - с ними я не работал (РЛЕ когда-то видел, но там уже всё изменилось), а подсказок там, как таковых, крайне мало. Поэтмоу методом тыка, проб и ошибок я еле еле всё-таки сделал как надо.
(Если у Вас что-то не получится - отписывайтесь в комментах, помогу!)
Затор был на моменте, где нужно было установить дефолтный банер. Сделал всё как полагается, но вот незадача, количество дефолтных баннеров было прописано так: “0/1″. И я балбес не мог понять, чего ноль-то. Минут через 10 лазания по системе я вспомнил, что эти баннеры должны модерировать ещё (когда-то очень давно я работал с баннерными системами). Нельзя сразу было написать, что баннер пошёл на модерацию?! Или таких дураков как я, которые забывают про эти вещи, нет в системе?
Поставил баннер в 5 часов утра, в 14:00 того же дня уже отмодерировали. С модерацией проблем нет.
Вообще дефолтный баннер штука интересная. Как я понял, это когда там система автоматом балансирует соотношение спроса и предложения по показам, остаются лишние показы, в которых можно показывать собственную рекламу :-) Круто, а у меня всё руки не доходили навешать на этот сайт рекламы других моих сайтов. Теперь и повод есть.

Теперь немного о тестируемом сайте.
Сайт слабенький. Запущен пару недель назад. Тематика развлекательная. Под 300 хостов и 3.000/+ хитов.

По поводу участия, вот что там пишут:
Для участия в программе необходимо:
1. Зарегистрироваться на сайте центра партнерских программ AdMedia. (Выкуп показов — совместный проект RLE и компании AdMedia.)
2. Добавить свой сайт в интерфейс программы выкупа, указав номер аккаунта в сети RLE, а также логин и пароль к нему.
3. Указать цену до 3 рублей, по которой вы готовы продавать показы. Цену выкупа можно изменить в любое время, изменения вступят в силу на следующий день.

А вот здесь можно подробнее узнать о выкупе РЛЕ показов через АдМедиа. Вот, что сами они пишут:
Выкуп показов и начисление денег происходит ночью. Расчёт производится за прошедшие сутки.
1. В полночь система узнает, сколько обменных показов вы накопили за прошедшие сутки, считая разницу между заработанными и потраченными вами показами с учетом комиссии сети.
2. Система оценивает, сколько суммарно обменных показов было предложено для выкупа всеми участниками.
3. Начинается непосредственно выкуп. Показы выкупаются на сайтах, накопивших не менее 1000 показов за прошедшие сутки. Само собой, в первую очередь показы выкупаются у участников, указавших минимальную цену. Затем выкупаются показы по более высокой цене, и так далее, пока не будет выкуплен весь требуемый объем.

После выкупа с вашего счета в RLE снимаются выкупленные показы. Общее количество показов на счету отображается в интерфейсе RLE, поле «У вас на счету». Информация о ценах и начислениях денег отображается в интерфейсе программы выкупа.

Цена за выкуп.
Цену за 1000 показов указываете Вы сами. Допустимые значения: 0.5 руб/1000, 1руб, 1.5, 2, 2.5, 3. Другого не дано. Во всяком случае, у меня не получилось поставить промежуточную цену. А было бы интересно, прогнозировать ситуацию на следующий день.
Рекомендую ставить Вам цену, КАК МИНИМУМ, 2.5. Ниже нежелательно, иначе это спровоцирует резкое падение цен и пострадаем все мы с Вами от этого. Если же ставить цены высокие, то все мы с Вами на коне.

По поводу того сколько можно заработать таким темпом.
Переходим к самому интересному - считаем бабло.
При моих 3 тыс хитов, “зачтуться” в РЛЕ наверное где-то две с лишним штуки. (у некоторых пользователей JS отключен, у кого firewall режет рекламу, плюс ещё коммисия системы РЛЕ и т.д.)
А выкуплены будут, скажем, 2 тыс показов.
Итого:
2 * 2.5 = 5 руб в день.
5 * 30 = 150 руб в месяц.
Не густо. :-)
Если показов будет под 40 тыс. (а сайт давать должен возле 50 тыс)
40 * 2.5 * 30 = 3000 р. в месяц.
Но и как говориться, не пусто. Порядка 110 баксов в месяц.
Поэтому, если показы есть, заработать на них можно. Другое дело откуда столько показов взять. Это уже сложный вопрос.

Ещё хочу поставить некоторые эксперименты с каталогом статей, где в качестве двига буду использовать собственно написанный VXDCat. Посмотрим, что там интересного.

Posted in Без рубрики | No Comments »

Введение в Zend Framework

июля 20, 2007 by admin

На хабре появился перевод неплохой статьи “Tutorial: Getting Started with the Zend Framework“.

UPD: Вторая переведенная часть туториала.

Статьи по теме: Введение Zend Framework

Posted in Без рубрики | No Comments »

Новая версия VXDCat 1.1. Мощный каталог статей. Это будет бомба! Теперь и для сеток сайтов!

июля 19, 2007 by admin

Сорри, что не писал эти дни - занят был написанием очередной версии каталога статей VXDCat.
Проделана огромная куча работы, затрачено много времени и усилий. Надеюсь не зря. Написано более 1.700 строк! А ведь это только начало!
Получилось даже ещё интереснее, чем я ожидал! Многие (полезные!) функции получились “сами по себе”, не думал даже их делать, но по ходу программинга подумал, “чёрт, а почему бы и нет!?”, таким образом и ввёл кучу (повторюсь, полезных!) функций, которые всё-таки хотел оставить за бортом.
Всё для Вас!

Из основных нововведений теперь стало можно управлять всеми копиями каталогов из одной.
- добавлен модуль DControl для централизированного управления всеми каталогами;
- переход на любой каталог из одного с автоматическим залогиниванием в другом;
(круто сказал, аж сам не понял смысла)
- рассылка указанной статьи по всем каталогам;
- централизированное модерирование статей всех каталогов из одной копии;
- ещё некоторые особенности увеличивающие производительность и скорость работы скрипта…
не стоим на месте, в общем! :-)

Шаблоны свободно меняются (обычные HTML, CSS файлы), лёгкая установка (автоматический инсталлятор), низкая нагрузка на сервера, заточка под сео, подстраиваемость под сетки сайтов, неограниченное количество категорий и подкатегорий, которые позволяют делать как узкотематические, так и не очень каталоги - о чём ещё можно мечтать?

Тут я выступаю как разработчик скрипта, а не как посредник, поэтому и проконсультировать смогу (БЕСПЛАТНО!) по поводу установки, настройки, эксплуатации скрипта.
Если будут найдены в скрипте какие-то критические уязвимости/”нерабочести” - предоставлю бесплатные апдейты. Это всё без проблем - я уже давно практикую такое со своими клиентами. За свой код я ответственен и отношусь к этому весьма серьёзно.

По цене VXDCat 1.1 подорожал на 10 баксов. И терь стоит $40. (оплата возможна по WM или Yandex.Деньги).
Разработки на этом не прекращаются. Куча идей в голове, которые все хотелось бы воплотить в код. Ну и Вы предлагайте какие-то свои идеи. Рассмотрю все варианты!
А все мои предложения, собсно, остаются в силе.

Ну и вот собсно демка.
VXDCat 1.1 в действии!
(входные данные в админку: admin/111)
Чтобы продемонстрировать работу централизированного модуля управления всеми копиями, запустил ещё два независимых друг от друга каталога:
http://best-projects.net/vxdone/
http://best-projects.net/vxdtwo/
Ими собсно и управляем.

Ай хоп ю инжой ит! :-)

Posted in Без рубрики | No Comments »

Online JavaScript компрессор

июля 16, 2007 by admin

Несколько раз искал, но найти не удавалось. Но вот случайно наткнулся
http://www.javascriptcompressor.com/
Компрессия хорошая, а некоторые скрипты после него даже продолжают работать :)

Статьи по теме: Online JavaScript компрессор

Posted in Без рубрики | No Comments »

Существует ли защита от скликивания (click fraud).

июля 15, 2007 by admin

Читая пост ИжБомжа серьёзно призадумался. Хочу высказать некоторые свои мысли на эту тему.
По идее, если есть действие, то есть и противодействие.
От скликивания никто из нас не застрахован. А можно ли уберечься как-то от него?
Ведь скликивание тоже бывает разным. От лузерского до профессионального (-:
Первое, это когда пользователь просто начинает тыкать по (РСЯ, АдСенс, Бегун и др.) объявлению:
- под одним IP адресом
- под разными
От такого, в принципе, кое какую защиту можно поставить. Например, сразу после определения, что пользователь “в этой области” страницы уже кликнул - засылать ему кукис-инфу. При повторной загрузке страницы (раз он уже кликал на протяжении какого-то времени) объявление больше не показывать (а зачем, второй следом за первым клик может уже за фродный сойти). Это если IP постоянный.
А если он не постоянный, а запросы идут через прокси, например?
Ну в принципе, та же схема подойдёт - во всяком случае раз клики от разных “людей”, то они и не фальшивые. Но думаю, в PPC тоже не дураки работают и куки также проверяют. Поэтому тут решение одно - если кукис клика уже прописан, второй раз объявление в течении какого-то времени этому пользователю просто не показывать.
Это сработает только в том случае когда у пользователя включён JavaScript и разрешена запись Cookies, чего уже, само по себе, не мало!
А отключается оно в 2 секунды в Опере (F12 - enable JavaScript, enable Cookies).
Защита какая-то, но очень уж шаткая.
А другая группа “скликеров” это те, которые будут просто рефрешить адрес “кликовой” ссылки.
И вот от таких, по-моему, уже ничего не спасёт. Они просто будут рефрешить ту ссылку (адсенсную, бегуновскую и т.д.). Те страницы, на которые мы уже никакого влияния не окажем. Как мне кажется защиты тут уже никакой не придумаешь. Что думаете?
(в общем-то о подобной защите думать должны уже сами PPC компании, а не мы (разработчики/админы сайтов), у них-то больше “власти” по анализу поступающих кликов и соответствующих им адресов). Хотя мне кажется, что это вскоре должны решить ППС, если уже не решили.

Posted in Без рубрики | No Comments »

Обетование.ру - мы тоже программисты

июля 13, 2007 by admin

Православный проект “Обетование.Ру” намерен навести порядок в “рядах” христианских сайтов. Об этом его руководитель Илья Дроздихин сообщил в интервью порталу Интернет.ру. Веб-студия планирует бороться с “низкопрофессиональными” православными проектами и укрепить свои позиции в православном Рунете, выпустив собственную CMS.

Можно, конечно, постебаться над этим, в стиле “диспетчер запросов - святой Петр” и т.д., но не хочется. Ну ладно люди от политики, которые хотят одарить Россию своей собственно ОС, но церковь…

Последнее время посетители православного Рунета столкнулись с массой проектов, заведомо несущих ложную информацию. Это не только баловство, но и финансовые махинации начиная со сбора пожертвований, заканчивая продажей пиратской продукции, при том деньги идут отнюдь не на восстановление храмов, чем пестрят такие сайты, а на личное обогащение их создателей”, - говорит Илья Дроздихин, - “Мы готовы до конца биться с низкопрофессиональными и малобюджетными сайтами, дискредитирующими репутацию христианского и православного присутствия в глобальной паутине в частности!

Вот уж с борьбой Вам своя CMS поможет. Последнее предложение вызвало уважение к этому человеку, который все таки честно признает, что борьба будет вестись не только с плохими сайтами, но и с дешёвыми. Мы Вам сделаем CMS за бабло, а так как у нас большой “административный ресурс” (обожаю эту формулировку), то нашу CMS сделают стандартом для церкви, и каждая церквушка и приход, которая хочет сделать свои “три-странички-в-два-ряда” будет покупать у нас лицензию.

Что дальше? Православный фреймворк? Православный http-сервер? Православная СУБД?

PS: Если мне кто-нибудь объяснит разницу между православными порталами и остальными на уровне кода, то я с радостью заберу слова назад.

Источник: http://webplanet.ru/news/business/2007/07/13/obetovanie_cms.html

Posted in Без рубрики | No Comments »

« Назад