2012-08-30 4 views
0

임명 joomla에 새로운 확장을 만들려고.joomla 추가 사용자 데이터

각 사용자에 대한 추가 정보를 원합니다. 내 자신의 사용자 정의 사용자 프로필 플러그인을 만들고 추가 필드를 추가하여이 작업을 수행 할 수 있지만이 필드를 사용자 프로필 페이지에 추가합니다.

새 필드를 별도로 표시하려고합니다. 예를 들어 사용자 페이지에 하나의 링크가있을 수 있습니다. 이름, 이메일 등. 그리고 그들에게 '추가'필드를 보여주는 또 다른 링크.

추가 필드는 개인 정보가 아니므로 개별적으로 표시하려고합니다.

내 질문은 어떻게 처리합니까? 각 사용자에게 필드를 추가하거나 완전히 새로운 구성 요소를 작성해야합니까?

업데이트 : 코드를 완전히 제어하려면 기존 확장명을 사용할 수 없습니다. 또한 추가 정보는 사용자가 추가하지 않으며 관리자 만 추가 할 수 있습니다.

답변

1

결국 내 자신의 구성 요소를 만드는 것이 더 좋다고 결정했습니다. 주로 업데이트가 나왔을 때 joomla 해킹이 해충이되기 때문에 JED는 내가 원하는 특정 확장 기능을 제공하지 않았습니다.

0

아마도이 작업을 수행하는 주요 방법은 2 가지가 있습니다.

  1. 사용자가 정보를 입력하고 #__users 테이블에 연결된 별도의 데이터베이스 테이블에 데이터를 저장하는 확장 프로그램을 만들 수 있습니다.
  2. 확장 프로파일의 경우 JED에서 확장을 다운로드 할 수 있습니다. 비영리 및 상업용 확장 기능이 있으므로 여기를 살펴보고 필요에 맞는 것이 있는지 확인하십시오.

개인적으로 미리 만든 확장 프로그램을 설치하면 작업/시행 착오를 많이 줄일 수 있습니다.

확인이 아웃 : 당신이 당신의 Joomla 버전을 업그레이드하면 추가 또는 줌라에 등록 페이지를 사용자 테이블에 필드를 추가하거나 사용자 정의처럼 코딩을 변경 한 경우 http://extensions.joomla.org/extensions/clients-a-communities/user-management

+0

답장을 보내 주셔서 감사합니다. JED를 사용하고 싶지 않으며 사용자가이 정보를 추가 할 수 없다고 언급 했어야합니다. 답변을 위의 –

0

그것을 복원은 기본입니다. 이 작업을 수행하는 방법은 다음과 같습니다

  • 당신은 다른 추가 정보를 포함하는 다른 테이블을 생성해야하고 #__users에서 사용자 ID 인다.
  • 양식을 제출할 때이 Joomla 코드를 사용하여 다른 표를 얻습니다.

$ module_table = JTable :: getInstance ('modules', 'profileTable');

  • 모듈 ->는 만든 테이블 이름을 의미합니다.

  • ProfileTable -> "구성 요소 이름"은 모델 이름이고 "표"는 일반적이라는 것을 의미합니다.

다음과 같이이 값을이 테이블에 전달해야합니다.

if (!$module_table->bind($post)) 
    { 
     return 0; 
    } 
    if (!$module_table->check()) 
    { 
     return 0; 
    } 
    if (!$module_table->store()) 
    { 
     return 0; 
    } 

이렇게하면 사용자에 대한 추가 데이터를 저장할 수 있습니다. 목적을 표시하는 경우, 당신은 ... 사용자 ID를 사용하여 두 개의 테이블을 조인하여 표시해야합니다

모든 최고의 ..

+0

위의 업데이트를 참조하십시오. 이것은 유망한 솔루션처럼 보입니다. 문제는 내가 따라야하는 것이 조금 어렵다는 것입니다. 그냥 읽어보고 이해할 수 있습니까? - 저에게 느린 것일 수도 있습니다. 어떤 경우에는 사과 할 수도 있습니다. 또한 if 문에서 0을 반환하는 이유는 무엇입니까? whatthing happenning을 빨리 설명 하시겠습니까? –

+0

Return 0 -> 이것은 게시물 데이터가 테이블에 성공적으로 저장 될 때 값을 반환합니다. 문제가 발생하면 값을 반환하지 않았으므로 데이터를 게시하는 동안 오류가 발생할 수 있습니다. – Basith

+0

당신은이 흐름을 잘 보냈을뿐입니다. 이것에 대해서 좋은 생각을 얻을 수 있습니다. – Basith

1

당신은 표준 사용자 프로필 페이지에 프로필 필드를 표시 할 필요가 없습니다 사용자 프로필 관리자에게만 표시되도록 구성 할 수 있습니다. 서로 다른 양식에 대해 서로 다른 설정을 지정하기 만하면됩니다 (CMS 전체에 걸쳐 4 가지가 있습니다). 코어 플러그인의 패턴을 따르십시오.