ImageCache, наложение текста. Пара вопросов.

Главные вкладки

Аватар пользователя Alex_R Alex_R 17 мая 2010 в 16:17

Есть тип материала - "Изображение", в нем одноименное поле, куда пользователь может загрузить картинку.
Сперва ставилось цель, чтобы при загрузке изображения на нее накладывалась надпись типа "© имя (логин) пользователя"
В настройке пресета ImageCache добавил действие "наложение текста", в поле "Текст" которого включив поддержку ПХП написал примерно следующее:

<?php
$p1 
explode("/"$image->source); 
$u1=user_load($p1[3]); // цифра 3 зависит от настроек пути у меня в этом месте UID.
return '© '.$u1->name;
?>

Все отлично работает, хотя вариант ИМХО скорее всего не самый лучший.
Однако возникла необходимость дать пользователю выбор ставить подпись или нет. В типе материала добавил поле (чекбокс) "ставить подпись" и... что с ним делать дальше не понимаю Sad Догадываюсь, что в тексте пресета нужно как то загрузить $node (Node_load() ?) Но как это сделать зная только путь и имя картинки загруженной ImageField, всякие варианты записи перепробовал и ничего не грузится Sad Может кто нибудь подскажет как правильно? Тогда и имя пользователя и положение чекбокса можно будет от туда брать.

Ну и второй вопрос: В настройках пресета можно задать цвет надписи, возможно ли этот выбор каким либо образом тоже дать пользователю при загрузке изображения?

Комментарии

Аватар пользователя iNFerNo iNFerNo 17 мая 2010 в 16:20

еще бы сделать что бы цвет на каждую фотку был свой

да еще хорошо бы что бы место куда текст прописывается тоже было по выбору

публикующего фотографию.

-----------

т.е. если код выше вствлю в пресет у меня будет капиарайт с мои ником ?

Аватар пользователя Alex_R Alex_R 17 мая 2010 в 16:28

iNFerNo wrote:
еще бы сделать что бы цвет на каждую фотку был свой

В чем разница с моим вторым вопросом - не понял.

iNFerNo wrote:

да еще хорошо бы что бы место куда текст прописывается тоже было по выбору
публикующего фотографию.

Думаю, что это решаемо/нерешаемо - аналогично цвету.

iNFerNo wrote:

т.е. если код выше вствлю в пресет у меня будет капиарайт с мои ником ?

Ну если в настройках пути поля "изображение" прописан [uid] в соответствующем месте (смотри коммент в коде), то работает.

Аватар пользователя gorr gorr 17 мая 2010 в 18:30

Можно так - в зависимости от значения чекбокса в шаблоне нода выводить разные пресеты(один с вотермарком, другой - без).

Аватар пользователя Alex_R Alex_R 18 мая 2010 в 3:09

gorr wrote:
Можно так - в зависимости от значения чекбокса в шаблоне нода выводить разные пресеты(один с вотермарком, другой - без).

Это понятно, но совсем неинтересно, больше похоже на заплатку, чем на решение.
Действительно похоже это самое простое из разумных решений. Спасибо!
И если я правильно понимаю, то выбор цвета и месторасположение ватермарка пользователю дать не получается никак Sad
Видимо именно таким образом и буду делать, только места на хостинге в 2 раза больше потребуется... жалко...

Аватар пользователя theСанитар theСанитар 17 мая 2010 в 22:17

node_load не очень поможет, так как в момент создания материала еще грузить-то нечего, оно еще не node_save, а значит и _load -- что?.. Тут придется делать костыль. Ну или делать/искать модуль, который будет перехватывать соответствующий хук и делать нужное... В теории можно еще в сторону Rules дернуться, но я в свое время так и не сделал.

Аватар пользователя Alex_R Alex_R 18 мая 2010 в 3:21

theСанитар wrote:
node_load не очень поможет, так как в момент создания материала еще грузить-то нечего, оно еще не node_save, а значит и _load -- что?.. Тут придется делать костыль. Ну или делать/искать модуль, который будет перехватывать соответствующий хук и делать нужное...

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

theСанитар wrote:

В теории можно еще в сторону Rules дернуться, но я в свое время так и не сделал.

Еще бы кто нибудь рассказал (дал ссылку) как этими Rules пользоваться правильно, на русском языке, а то по английски читал с онлайн-переводчиком - нифига не понял Sad

Аватар пользователя theСанитар theСанитар 14 июня 2010 в 17:03

>Еще бы кто нибудь рассказал (дал ссылку) как этими Rules пользоваться правильно, на русском языке, а то по английски читал с онлайн-переводчиком - нифига не понял Sad

Язык программирования типа, мышкой рисуешь процесс. Выбираешь событие, указываешь объект и т. д. Есть условия. В принципе, полезная вещ, но тормозит.