<p>I think it's going to be a lot easier if you go the custom plugin route with your own <a href="http://buildwithcraft.com/docs/templating/entry-form" rel="nofollow">front-end forms</a> for everything.  Not hacky at all!</p>

CC BY-SA 3.0
2015-03-09T00:27:02.203Z
Okay, cool, I'm thinking the same after having a think over the weekend.  Thanks for the advice!!
Drew W
CC BY-SA 3.0
2015-03-08T23:55:14.187Z
2015-03-08T23:55:14.187Z
Brad Bell
<p>In our Craft Pro site we've enabled public registrations and allow anyone to create an account and make entries in a "blog" channel.  These entries are then filtered via URL segments - so /blog/ will show a listing of entries by each user.  A user can create different entry types (video/audio/text/etc) which are handled by different templates.</p>

<p>I'm trying to add the ability for a user to "reblog" or "repost" another user's entry - I'm not sure of the best way to do that though.  The ideas I've had are:</p>

<ul>
<li>Create a new entry type (reblog), with a field that stores a reference to the original entry ID and allows the user to add a comment</li>
<li>Use a custom plugin to create an entry as above</li>
<li>Clone the original entry data into a new entry and allow the user to edit it</li>
<li>Create a new channel for reblogs which the user doesn't have permission to post to via the CP, and try to hack around that using a plugin and frontend forms</li>
</ul>

<p>My issue is that, for usability reasons, I'd very much prefer to hide the original entry ID reference field (if this is handled through the CP) but I don't know if that's possible?  We're relying entirely on the CP for creating entries at the moment, so it'd be a bit clunky if we moved the handling of reposts to a separate section of the site.</p>

<p>Also if I simply reference the original entry ID in a field, while it would be cleaner than cloning the original entry's content (assets/etc) and creating a new post for the current user, I'll most likely still have to create a new entry type (reblog) to house the new post, which would then appear in the "Entry Type" dropdown when accessing the create entry page, which would be pretty confusing to the end user, unless I made the original entry ID some kind of custom FieldType with a live-search sort of feature?</p>

<p>I'm beginning to think that perhaps the best way is to handle this through a plugin / frontend form, but that feels super hacky.</p>

<p>Any suggestions on how best to approach this issue?  I'm totally open to any and all ideas!  </p>

CC BY-SA 3.0
2015-03-08T19:22:30.650Z
I'm a little confused... do users "reblog" from their authenticated account on the front-end? Or are you saying that all users have access to the CP?
Brad Bell
CC BY-SA 3.0
2015-03-08T22:47:19.347Z
Sorry - users have access to a limited version of the CP [Using these permissions](http://i.imgur.com/4VgSW1x.png) - so they need to register and have an authenticated account before they can do any kind of interaction with the site.
Drew W
<plugin-development><templating><users><control-panel>
Multi-user blog "repost entry" functionality
# Multi-user blog "repost entry" functionality

(Asked by: username_0 on 2015-03-08)

In our Craft Pro site we've enabled public registrations and allow anyone to create an account and make entries in a "blog" channel. These entries are then filtered via URL segments - so /blog/ will show a listing of entries by each user. A user can create different entry types (video/audio/text/etc) which are handled by different templates.

I'm trying to add the ability for a user to "reblog" or "repost" another user's entry - I'm not sure of the best way to do that though. The ideas I've had are:

* Create a new entry type (reblog), with a field that stores a reference to the original entry ID and allows the user to add a comment
* Use a custom plugin to create an entry as above
* Clone the original entry data into a new entry and allow the user to edit it
* Create a new channel for reblogs which the user doesn't have permission to post to via the CP, and try to hack around that using a plugin and frontend forms

My issue is that, for usability reasons, I'd very much prefer to hide the original entry ID reference field (if this is handled through the CP) but I don't know if that's possible? We're relying entirely on the CP for creating entries at the moment, so it'd be a bit clunky if we moved the handling of reposts to a separate section of the site.

Also if I simply reference the original entry ID in a field, while it would be cleaner than cloning the original entry's content (assets/etc) and creating a new post for the current user, I'll most likely still have to create a new entry type (reblog) to house the new post, which would then appear in the "Entry Type" dropdown when accessing the create entry page, which would be pretty confusing to the end user, unless I made the original entry ID some kind of custom FieldType with a live-search sort of feature?

I'm beginning to think that perhaps the best way is to handle this through a plugin / frontend form, but that feels super hacky.

Any suggestions on how best to approach this issue? I'm totally open to any and all ideas!

**Tags:** plugin-development, templating, users, control-panel

> **Comments:**
> **username_1**: I'm a little confused... do users "reblog" from their authenticated account on the front-end? Or are you saying that all users have access to the CP?  
> **username_0**: Sorry - users have access to a limited version of the CP [Using these permissions](http://i.imgur.com/4VgSW1x.png) - so they need to register and have an authenticated account before they can do any kind of interaction with the site.  

---

## 1 answers

### Answer by username_1 on 2015-03-08. Score: 0 | Accepted answer

I think it's going to be a lot easier if you go the custom plugin route with your own [front-end forms](http://buildwithcraft.com/docs/templating/entry-form) for everything. Not hacky at all!

> **Comments:**
> **username_0**: Okay, cool, I'm thinking the same after having a think over the weekend.  Thanks for the advice!!  

---

