Dreammaker

Dreammaker
Рейтинг
569
Регистрация
20.04.2006

p.s. Может кому-то пригодится выложу его (за основу брал ActiveFileField и дописал нужное).


<?php
class DHTMLX extends CHTML
{

public static function activeFileFieldExtended($model,$attribute,$htmlOptions=array())
{

self::resolveNameID($model,$attribute,$htmlOptions);
if (!empty($model->$attribute))
$existFile = self::tag('br') . self::hiddenField(str_replace($attribute, $attribute.'ExistFile', $htmlOptions['name']),CHtml::encode($model->$attribute) ,array('id'=>self::ID_PREFIX.str_replace($attribute, $attribute.'ExistFile', $htmlOptions['id'])))
. self::checkBox(str_replace($attribute, $attribute.'ExistFileDelete', $htmlOptions['name']), false, array('id'=>self::ID_PREFIX.str_replace($attribute, $attribute.'ExistFileDelete', $htmlOptions['id'])))
. self::label('delete?',self::ID_PREFIX.str_replace($attribute, $attribute.'ExistFileDelete', $htmlOptions['id'])) . self::link(CHtml::encode(basename($model->$attribute)),CHtml::encode($model->$attribute));
else
$existFile = '';

;
// add a hidden field so that if a model only has a file field, we can
// still use isset($_POST[$modelClass]) to detect if the input is submitted
return self::hiddenField($htmlOptions['name'],'',array('id'=>self::ID_PREFIX.$htmlOptions['id']))
. self::activeInputField('file',$model,$attribute,$htmlOptions) . $existFile;
}

}

тут немного говнокодистее :)

bearman, свойству объекта присваиваю новый путь как относительный для веб-сайта. Во вьюхе у меня по нему строится элемент, который состоит из файлового поля, ссылки на картинку и чекбокса для удаления. Создаётся как унаследованный метод от стандартного ActiveFileField из CHTML

Указывается стандартно:


<div class="simple">
<?php echo DHtmlX::activeLabelEx($model,'image'); ?>
<?php echo DHtmlX::activeFileFieldExtended($model,'image'); ?>
</div>

а выглядит вот так:

png 46038.png

bearman, NutZ,

вы будете выступать для Neval как заказчики?

p.s. Наперёд бросаю свой метод (выбрал тот, который мне не до конца нравится, много вложенных ифов, но в котором было минимум кодогенерации) :)


public function actionUpdate()
{

$model=$this->loadNews();
if(isset($_POST['AdminNews']))
{


$model->attributes=$_POST['AdminNews'];
$model->image=CUploadedFile::getInstance($model,'image');
$valid = $model->validate();

if (!empty($model->imageExistFile) && !empty($model->imageExistFileDelete) )
{
$this->deleteExistingFile($model->imageExistFile) ;
}

if(!empty($model->image) && !$model->hasErrors('image'))
{
$this->deleteExistingFile($model->imageExistFile);
$filename = Yii::app()->user->id . '_' . substr(md5($model->image->getName()), 27, 5);
$savePath = FileHelpers::getUniqueFileName('../images/b/', $filename .'.'.$model->image->getExtensionName(), $model->image->getExtensionName());
$model->image->saveAs('../images/tmp/' . $savePath);
$model->image= '/images/tmp/' . $savePath;
}
else
{
$model->image=$model->imageExistFile;
}

if ($valid)
{
if (!empty($model->image)) {

$imagePath = basename($model->image);

FileHelpers::copyFile('../'.$model->image, '../images/b/' . $imagePath);

$image = Yii::app()->image->load('../images/b/' . $imagePath);
$image->resize(100, 100, Image::WIDTH);
$image->save('../images/s/' . $imagePath);

$image = Yii::app()->image->load('../images/b/' . $imagePath);
$image->resize(300, 500, Image::WIDTH);
$image->save('../images/b/' . $imagePath);

FileHelpers::removeFile('../images/tmp/', $imagePath);

$model->image = $imagePath;

}

$model->save(false);
$this->redirect(array('/news'));
}
}
$this->render('update',array('model'=>$model));
}
NutZ:
seomunch, код сюда кинь. Чтобы понятно было.

Присоединяюсь к просьбе, если ТС считает, что программеры на СЕ телепаты, то как вариант, можно тоже предложить прочитать правильное решение из наших голов напрямую, минуя форум :)

vsupport:
В приват-банке тоже есть такой сервис. Оба дешевле.

В привате, по крайней мере, украинском, вроде бы Visa Internet - 7 баксов/год. Или что-то поменялось?

update: сейчас глянул - открытие 2 уе, обслуживание 5 уе в год.

stroydomen, вы не совсем поняли высказывание. Имеется в виду, что траффик там собирается с поисковых машин, а потом уже его можно монетезировать контекстом.

А то что вы описали в чистом виде называется арбитражем (покупаем в контексте посетителя за рупь, а отправляем его назад за 2), тему используют, но такой "выжатый" траф нелюбим системами контекстной рекламы и они борются с этим тем или иным способом.

Dreammaker добавил 26.10.2009 в 21:24

MyRoad:
Цена клика для этой тематики в бегуне невысока - 2 руб.

Кстати, сразу не заметил. Если это конечная цена клика для площадки, а не для рамблера, то хватайтесь руками и ногами - вполне достойная на нынешний момент цена клика. Впрочем, даже и рубль как бид (а не цена для рекламодателя) при хороших объёмах траффика и хорошем CTR - вполне терпимо.

The WishMaster:
СЧ только каталогами?

можно и только текстом - всё зависит от конкуренции.

p.s. Уточню, на собственном опыте говорю.

MyRoad:
Хотелось бы совместить заработок и душу

продать душу? :)

А если серъезно, то можно монетезировать, объемы зависят от тематики и фантазии вебмастера.

SMM:
это?

Мальчик чем-то напоминает Юру Демидовича, так и хочется подпеть "Волшебный кролик!" :)

Партизанен:
Все вроде исправили и бабосов доначислили за выходные.

угу, циферки более обтекаемые стали :)

update: судя по статистике, опять стало как-то непонятно считать, так что объявление о технических работах всё ещё в силе.

Всего: 10921