На моем сайте пользователей смущало то, что нельзя установить аватарку из личного фотоальбома. В функционале движка данного решения не нашёл (может плохо искал?).
Пришлось повозиться немного с кодом и решение было достигнуто. Работу провёл на InstantCMS 1.6.2, для 1.7 пока не проверял, но думаю работать будет.
Теперь когда пользователь открывает свою фотку из альбома, открывается вот такое:
Правим файл /components/users/frontend.php. Сразу после:
Вставить:
Далее добавить перед разделом // VIEW PHOTO //:
В разделе //VIEW PHOTO// после:
добавить:
На моем примере немного подправлен шаблон — ссылки на предыдущую и следующую фотки выведено сверху от фотки, поэтому у вас должна вывестить ссылка на установку фотки как аватара внизу между ссылками на предыдущую и следующую.
Добавить новое правило в файл /components/users/router.php
Пришлось повозиться немного с кодом и решение было достигнуто. Работу провёл на InstantCMS 1.6.2, для 1.7 пока не проверял, но думаю работать будет.
Теперь когда пользователь открывает свою фотку из альбома, открывается вот такое:
Правим файл /components/users/frontend.php. Сразу после:
Вставить:
function img_res($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100) { if ($size === false) return false; $icfunc = "imagecreatefrom" . $format; $x_ratio = $width / $size[0]; $y_ratio = $height / $size[1]; $use_x_ratio = ($x_ratio == $ratio); $isrc = $icfunc($src); $new_width, $new_height, $size[0], $size[1]); return true; }
Далее добавить перед разделом // VIEW PHOTO //:
/////////////////////////////// Установка аватара из фотоальбома ///////////////////////////////////////////////////////////////////////////////////////// if ($do=='setav'){ $sql = "SELECT imageurl FROM cms_user_photos WHERE id = $photoid AND user_id = $id"; $result = $inDB->query($sql); $photo = $inDB->fetch_assoc($result); $filename=$photo['imageurl']; $uploaddir= $_SERVER['DOCUMENT_ROOT'].'/images/users/'; $uploadfile = $uploaddir .'/photos/medium/'.$filename; $uploadavatar = $uploaddir .'/avatars/'.$filename; $uploadthumb = $uploaddir . 'avatars/small/' . $filename; img_res($uploadfile, $uploadavatar, $medw, $medh); img_res($uploadfile, $uploadthumb, 70, 80); $sql = "SELECT imageurl FROM cms_user_profiles WHERE id = $userid"; $result = $inDB->query($sql) ; if ($inDB->num_rows($result)){ $old = $inDB->fetch_assoc($result); }; if ($old['imageurl']=='nopic.jpg'){ $sql = "UPDATE cms_users SET rating = rating + 10 WHERE id = '$id'"; $inDB->query($sql); } if ($old['imageurl']==''){ $sql = "UPDATE cms_users SET rating = rating + 10 WHERE id = '$id'"; $inDB->query($sql); } $sql = "UPDATE cms_user_profiles SET imageurl = '$filename' WHERE user_id = '$id' LIMIT 1"; $inDB->query($sql) ; $inCore->redirect(cmsUser::getProfileURL($inUser->login)); }
В разделе //VIEW PHOTO// после:
if ($previd && $nextid) { echo '<td>|</td>'; }
if ($myprofile) { echo '<td><a style="height:16px; line-height:35px;margin-right:5px; padding-left:20px; background:url(/components/users/images/male.gif) no-repeat;" href="/users/'.$usr['id'].'/setav'.$photoid.'.html">Сделать аватаром</a></td> '; }
Добавить новое правило в файл /components/users/router.php
//RewriteRule ^users/([0-9]*)/setav([0-9]*).html$ /index.php?view=users&do=setav&id=$1&photoid=$2 '_uri' => '/^users\/([0-9]+)\/setav([0-9]+).html$/i', 'do' => 'setav', 1 => 'id', 2 => 'photoid' );
Реклама #
InstantCMS 13 лет назад #
этот пункт не нужен
Белгородский Бомж 13 лет назад #
Анатолий 13 лет назад #
Вставить след. строки в нужное место:
Митяй 13 лет назад #
Белгородский Бомж 13 лет назад #
img_res($uploadfile, $uploadthumb, 70, 80);
70 - ширина, 80 - высота
Так сделал для своего проекта.
По умолчанию должно быть
img_res($uploadfile, $uploadthumb, $smallw, $smallw);
В этом случае задаётся в админке, а если не задано - 64х64
Митяй 13 лет назад #
Белгородский Бомж 13 лет назад #
if ($myprofile) {
и
}
Митяй 13 лет назад #
13 лет назад #
есть ссылочка сделать аватаром, при нажатии выкидывает в список пользователей.
Female 13 лет назад #
Анатолий 13 лет назад #
Умные Интернет Разработки 13 лет назад #
Белгородский Бомж 13 лет назад #
Умные Интернет Разработки 13 лет назад #
Белгородский Бомж 13 лет назад #
bondar 13 лет назад #
bondar 13 лет назад #
bondar 13 лет назад #
Иван Шкута 13 лет назад #
Black-Raven90 13 лет назад #
vitalson9 13 лет назад #
Telema93 13 лет назад #
Telema93 12 лет назад #
Но лучше подгрузить яваскрипт для обрезки
Telema93 12 лет назад #
соотношение для 1.9 должно иметь вид h2=h1*200/w1 где 200 - w2, то есть максимальная ширина аватара
что шаманится в самой функции - не совсем ясно, ведь достаточно просто "ужать" картинку без обрезания стандартными средствами html
GarikKR 13 лет назад #
CROSS ツ 12 лет назад #
Telema93 12 лет назад #
CROSS ツ 12 лет назад #
boss 12 лет назад #
Заранее благодарен
Def 12 лет назад #
Bars 12 лет назад #
Taurus 11 лет назад #