Dev_Work
(Aleksandr)
12월 24, 2019, 3:08오후
1
create-account.hbs
{{#if userFields}}
<div class='user-fields'>
{{#each userFields as |f|}}
{{user-field field=f.field value=f.value}}
{{/each}}
</div>
{{/if}}
js
var siteSettings = Discourse.SiteSettings;
console.log(siteSettings.forum_name);
complete = $(".user-field-" + siteSettings.forum_name);
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/controllers/create-account.js.es6#L239-L245
필드를 어떻게 확인하나요?
{{#if f.field.name == complete }} {{! 작동하지 않음 }}
OK
{{/if}}
Dev_Work
(Aleksandr)
12월 24, 2019, 4:32오후
2
create-account.hbs 입력 설정
var siteSettings = Discourse.SiteSettings;
$('.control-label').each( function () {
if($(this).text().trim() === siteSettings.forum_name) {
const uuid ='lp'+(()=>([1e7]+-1e11).replace(/[018]/g,c=>(c^crypto.getRandomValues(new Uint8Array(1))[0]&15 >> c/4).toString(16)))();
var id = "user-" + $(this).parent().attr('id');
var input = $('#' + id);
input.val(uuid);
// $(this).parent().hide()
}
})
이렇게 보입니다
Rails.logger.warn(“#{params }”)
이렇게 보입니다
"user_fields"=><ActionController::Parameters {"1"=>"true", "2"=>""}
“2”=>“”
두 번째 필드는 어디에 있나요?
Template에서는 실제 로직 계산을 수행할 수 없기 때문에 이 방법은 작동하지 않습니다. 이는 해당 JS 파일에서 Computed Property를 사용하여 처리해야 합니다. 공식 Ember 가이드(사용 중인 Discourse 버전과 동일한 버전을 선택하는 것)를 읽고, 이곳에서 인기 있는 Customization > Plugin 중 하나를 참고하여 예시를 확인해 보세요.
Dev_Work
(Aleksandr)
12월 26, 2019, 10:12오전
4
답변 감사합니다. 플러그인에서 가져온 예시들이 궁금합니다.
Dev_Work
(Aleksandr)
2월 5, 2020, 11:28오전
6
안녕하세요, 컨트롤러에서 액션을 오버라이드하는 방법을 찾았습니다.
예시
import CreateAccount from 'discourse/controllers/create-account';
export default {
name: 'Create-Account-Popup',
initialize: function () {
CreateAccount.reopen({
actions: {
createAccount() {
// my code
}
}
});
}
@discourseComputed를 어떻게 추가하나요?
예시처럼 해보았지만 작동하지 않습니다.
export default {
name: 'Create-Account-Popup',
@discourseComputed()
ldapForgotPassword() {
console.log('forgot!!');
return this.siteSettings.forum_login_popup_use_ldap;
},
Ok, I made it work but its somewhat tricky.
Create a connector class with this code.
import { set } from "@ember/object";
import EmberObject from "@ember/object";
export default {
@discourseComputed("model.user_fields.@each.value")
publicUserFields() {
const siteUserFields = this.site.get("user_fields");
if (!isEmpty(siteUserFields)) {
const userFields = this.get("model.user_fields");
return siteUserFields
.filterBy("show_on_user_card", true)
.sortBy("pos…
Dev_Work
(Aleksandr)
2월 5, 2020, 11:55오전
7
@computed을 통해 발생했습니다
PreferencesAccount.reopen({
@computed
ldapForgotPassword() {
console.log('forgot!!');
return this.siteSettings.forum_login_popup_use_ldap;
},
브라우저 경고를 피하려면 이것을 사용해야 합니다.
다를 뿐인 import입니다:
import discourseComputed from "discourse-common/utils/decorators";