如何在CodeIgniter上设计联盟系统,以便在网站的每个页面上使用?

时间:2013-04-26 08:32:11

标签: codeigniter affiliates

我正在为CodeIgniter设计一个电子商务网站的联盟系统,我想知道它的最佳方法是什么。

我希望关联企业能够链接到网站上的每个页面。

理想情况下,联属会员会在我的网站上复制所需的链接,添加一些识别后缀,并将其用作推介链接。

我以为我会指示联盟会员为每个链接添加/ref/ref_id后缀,然后在我的标题中使用$this->uri->uri_to_assoc(n)(即 - 在每个页面上),并查找该对{{ 1}}在结果数组中。

问题在于某些页面在uri中具有偶数个段,而其他页面具有奇数个段。

所以,'ref' => 'ref_id'会产生:

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 )上使用此语法,因为我找不到404页面,因为我的家庭控制器中没有mywebsite.com/ref/ref_id功能。

我认为另一个选项是使用查询字符串(ref),但这似乎不是CodeIgniterish,不是吗?

那么实现这个的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

我曾在CodeIgniter上使用过联盟网站,最简单的事情就是:

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

然后在 controllers / ref.php 中保存基于ref_id的Cookie(可能希望为此使用路由),并将它们重定向到$this->input->get('url')。现在你可以神奇地将它们重定向到其他网站了! :)

让他们只需在文本字段中输入网址,并通过ajax:

<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>

只需要一个鼓励他们复制生成的字符串的文本。

无需复杂化。