РЕГИСТРАЦИЯ
Гость
Вход не выполнен.

1) Вопрос по репутации 2) Вопрос по переадресации\вход

Rad Cor

  • Участник
  • Пользователь
  • 26
  • 1
  • Жалоб нет
  • Регистрация:
#1

Здарова всем.

В общем делаю новый сайт посвящённых движку Atom-M (позднее покажу).
Возникает достаточно различных вопросов.
И вот 2 которые волнуют на данный момент.

1) У нас на странице пользователя есть ссылка, нажав на которую открывается аякс окно, и в нём выбираем хотим мы прибавить репутацию или уменьшить её.

{% if checkAccess([module,'set_rating']) %}<a href="#" onClick="$('#setRating_{{ user.id }}').show();"><i class="fa fa-thumbs-up"></i></a>{% endif %}

Я хочу кнопки выбора визуально скрыть, и сделать 2 ссылки.
Одна с плюсом, другая с минусом.
То есть, нажав на ссылку с плюсом, будет открываться это же окошко, но в нём уже будет автоматически выбрано "+1". А если нажимать на ссылку с минусом, будет автоматически выбрано "-1".
Остаётся только вписать комментарий и изменить репу.
Подскажите, как сделать 2 разные ссылки, что бы нажимая на них, уже автоматически в аякс окне было выбрано + или - .

2) Второй вопрос касается переадресации после аторизации. Если авторизоваться на сайте,  то автоматически перекидавает на страницу пользователей /users/.
А хотелось бы сделать так, что бы перекидавало на персональную страницу /users/info/ID/


gbox.su

Rad Cor

  • Участник
  • Пользователь
  • 26
  • 1
  • Жалоб нет
  • Регистрация:
#2

up


gbox.su

MrBoriska

  • Мастер
  • Администратор
  • 285
  • 11
  • Жалоб нет
  • Регистрация:
#3

1. Ну так то ссылка вот: /users/rating/{{ user_id }}?points={{ vote }}
,где user_id это id юзера, которому изменяешь репу, а vote это +1 либо -1
комментарий отсылается $_POST данными и необязателен для указания.
Работать с этой ссылкой удобно через sendu(). Например так: 

<a href="/users/rating/{{ user_id }}?points=1" onclick="sendu(this,'Изменение репутации',{align: 'center'}); return false">+</a>
<a href="/users/rating/{{ user_id }}?points=-1" onclick="sendu(this,'Изменение репутации',{align: 'center'}); return false">-</a>

sendu() это стандартная функция в atom.js

2. То что перекидывает на страницу пользователей - недоработка. Известная причем. Чтобы сделать то, что хочешь ты нужно дождаться когда я введу усовершенствованную систему событий. Ибо текущая система хуков, работает только в паре с плагинами, да и хука на данный момент для твоего случая не добавлено.


Rad Cor

  • Участник
  • Пользователь
  • 26
  • 1
  • Жалоб нет
  • Регистрация:
#4

MrBoriska, сделал ссылку как ты показал.

<a class="up-sui-d3-1-1-a2" href="/users/rating/{{ user_id }}?points=1" onclick="sendu(this,'Изменение репутации',{align: 'center'}); return false">+</a>

Выдаёт вот такую ошибку: "Значение должно быть числом"

Прикрепленные файлы:
У вас нет прав для скачивания прикрепленных файлов
gbox.su

MrBoriska

  • Мастер
  • Администратор
  • 285
  • 11
  • Жалоб нет
  • Регистрация:
#5

Ну ты метку то поменяй, на ту что выводит id юзера, я то так, для примера, метку написал.


Rad Cor

  • Участник
  • Пользователь
  • 26
  • 1
  • Жалоб нет
  • Регистрация:
#6

MrBoriska, всё понял, сделал. Но это не совсем то, что мне нужно. При клике на такую ссылку, открывается новая страница с текстом "Вы уже проголосовали" или "ок"
А мне нужно, что бы всё осталось так же как было.
Только я в css скрою визуально радиокнопки эти

<input type="radio" name="points" value="-1" /><b>-1</b><br />
<input type="radio" name="points" value="1" /><b>+1</b><br />

И мне нужно что бы при нажатии на ссылку "Повысить репу" открывалась окно, как и прежде, только у инпута value="1" что бы было уже выставленно значение checked="checked"
Ну и аналогично со второй ссылкой, когда жму "Понизит репу", должно открыватся всё тоже окошко, только выбрана должна быть радиокнопка "минус один"


gbox.su

MrBoriska

  • Мастер
  • Администратор
  • 285
  • 11
  • Жалоб нет
  • Регистрация:
#7

Ну значит, тогда не надо тебе sendu() , нужно к стандартной кнопке открытия окошка дописать что то типо: 

<a href="#" onClick="$('#setRating_{{ post.author.id }}').show().find('input:radio[name=points][value=1]').attr('checked', 'checked');">повысить</a>
<a href="#" onClick="$('#setRating_{{ post.author.id }}').show().find('input:radio[name=points][value=-1]').attr('checked', 'checked');">понизить</a>

Тема закрыта