2013-04-26 2 views
1

저는 CodeIgniter에서 전자 상거래 사이트를위한 제휴 시스템을 설계하고 있으며, 최선의 방법이 무엇인지 궁금합니다.CodeIgniter에서 제휴 시스템을 디자인하여 사이트의 모든 페이지에서 사용하는 방법은 무엇입니까?

제휴사가 웹 사이트의 모든 페이지에 연결할 수 있기를 바랍니다.

이상적으로 제휴사는 내 웹 사이트에서 원하는 링크를 복사하고, 식별 접미사를 추가하고이를 추천 링크로 사용하는 것이 이상적입니다. (- 모든 페이지에 즉), 그 결과 배열의 쌍 'ref' => 'ref_id'을 찾아

는 내가 모든 링크에 /ref/ref_id 접미사를 추가 제휴를 지시하고 내 헤더에 $this->uri->uri_to_assoc(n)를 사용하는 거라고 생각했다.

일부 페이지는 URI에 짝수 개의 세그먼트가 있고 다른 세그먼트에는 홀수 개의 세그먼트가 있습니다. 그래서

, mywebsite.com/item/item_id/ref/ref_id은 얻을 것이다 :

array 
    'item' => 'item_id' 
    'ref' => 'ref_id' 

중대하다. 그러나 mywebsite.com/aboutus/ref/ref_id은 다음과 같이 산출됩니다.

array 
'aboutus' => 'ref' 
'ref_id' => false 

매우 도움이되지 않습니다.

또한 홈 페이지에 ref 기능이 없기 때문에 404 페이지를 찾을 수 없기 때문에 홈페이지 자체에서이 구문을 사용할 수 없습니다 (mywebsite.com/ref/ref_id).

다른 옵션은 쿼리 문자열 (mywebsite.com/about?ref=ref_id)을 사용하는 것으로 생각했지만 CodeIgniterish가 아닌 것 같습니다. 그렇습니까?

그래서 이것을 구현하는 가장 좋은 방법은 무엇입니까?

답변

1

내가 CodeIgniter의에서 제휴 사이트와 함께 일했으며, 가장 쉬운 것은 단순히이었다

http://mywebsite.com/ref/ref_id?url=whateverorthesame.com/aboutus 

그런 다음 컨트롤러에서/ref.phpref_id에 따라 쿠키를 저장 (로 할 수 있습니다 이것을 위해 라우팅 사용), 단순히 $this->input->get('url')으로 리디렉션하십시오. 이제 마술처럼 다른 사이트로 리다이렉트 할 수 있습니다! :)

그들을 단순히 입력 텍스트 필드에 URL을 가지고 있고, 아약스를 통해 :

<script type="text/javascript"> 
    // jQuery dependent 
    $('input#url').bind('change', function() { 
     $('div#copy_box').text('<?=base_url()?>ref/<?=$user->id?>?url='+encodeURIComponent($(this).val())); 
    }); 
</script> 

단순히 생성 문자열을 복사하도록 장려하는 텍스트가 있습니다.

복잡하지 않아도됩니다.

+0

감사합니다. Robin. 그러나 제휴사가 링크를 쉽게 만들 수 있기를 원했습니다. 비 기술적 인 사람들이라면 원하는 링크에'ref/ref_id'를 추가하면됩니다. – einav

+1

기술자가 아닌 사람들은 'url' 값을 추가하기 만하면됩니다. 실수하지 않으면 주어진 예제로 다시 만들 수 있습니다. –

+0

그렇다면 (- : 나는 마법의 해결책이 있었으면 좋겠다고 생각했지만 대답은 없었습니다.) 제휴 시스템에 대해 잘 알고 있다면, 어떤 유형의 리디렉션을 권장하겠습니까? – einav