- Posts: 80
COMMUNITY FORUM
- Forum
- K2 Community Forum
- English K2 Community
- [SOLVED] Premium Content Items Invisible IF Not Logged In
[SOLVED] Premium Content Items Invisible IF Not Logged In
- Chris Hogan
-
- Offline
- Premium Member
So which blocks are these?
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
In the item.php file you can identify each block by the HTML comments.
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
I have the code below just need to know which bit to change...
<?php if($this->item->params->get('itemFullText')): ?>
<!-- Item fulltext -->
<div class="itemFullText">
<?php echo $this->item->fulltext; ?>
</div>
<?php endif; ?>
<?php else: ?>
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
<?php $user = JFactory::getUser();
if ($user->guest) {
echo "<p>You must login to see the content. I want your email address.</p>";
} else { ?>
<?php if($this->item->params->get('itemFullText')): ?>
<!-- Item fulltext -->
<div class="itemFullText">
<?php echo $this->item->fulltext; ?>
</div>
<?php endif; ?>
<?php else: ?>
<?php } ?>
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
It also displays the intro text twice (above & below) the login text screenshot . Furthermore it has also made the item registered without myself even changing the access level to be Registered in that particular item!?
However, this in not the main issue - Because on my K2 category page, it still doesn't display my items which are set to the Registered Access level & because of this, there are no items displaying to show guests a bit of sample text with a 'register to read more button...' just like on a normal Joomla setup.
This is basically what I'm trying to replicate.
Thanks again!
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
It does not check for any specific groups.
If you need extra functionality take a look at this.
docs.joomla.org/Accessing_the_current_user_object
Now, you can replace the " echo "<p>You must login to see the content. I want your email address.</p>";" part with code that generates a module or simply enter a link.
Now as for the other blocks. The logic is:
Anything that goes inside the else block must be removed from everywhere else.
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
The groups (Set to the user's group ids.) is what you are looking for.
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
This has basically given me some other options via a plugin to setup in the best possible way for my site with some free areas some paid...
However, my question is to do with the way users can click an 'image' or the 'title' of an Item to get to the Items Full Text.
Now with the changes I managed so far with the item.php file, I may still be able to implement them in a way for guest users who ''click on an Items Title or Image'' for them to see my 'login message' inside of that item BUT I would need to remove the duplicate text problem I had with this before. Screenshot - goo.gl/2b8neA
Below is the item.php code which displays the login/link message and after that (in the code) is the <!-- Item text -->
Can you advise me about which part I need to look at to remove this duplicate text
<?php $user = JFactory::getUser();
if ($user->guest) {
echo '<a href="https://mysite.com/join-now">You must login to see the content!</a>';
} else { ?>
<?php if($this->item->params->get('itemFullText')): ?>
<!-- Item fulltext -->
<div class="itemFullText">
<?php echo $this->item->fulltext; ?>
</div>
<?php endif; ?>
<?php } ?>
<!-- Item text -->
<div class="itemFullText">
<?php echo $this->item->introtext; ?>
</div>
<?php endif; ?>
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
The final code should include the introtext BEFORE the full text.
<?php $user = JFactory::getUser();
if ($user->guest) {
echo '<a href="https://mysite.com/join-now">You must login to see the content!</a>';
} else { ?>
<?php if($this->item->params->get('itemFullText')): ?>
<!-- Item fulltext -->
<div class="itemFullText">
<?php echo $this->item->fulltext; ?>
</div>
<?php endif; ?>
<?php } ?>
As for linking different elements of the template (providing that you use the K2 image) you can add links manually in the category_item.php override.
<a href="<?php echo $this->item->link; ?>">
ELEMENT YOU WANT LINKED
</a>
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
So I tried to move <!-- Item introtext --> before the line starting <!-- Item fulltext --> in the final code, but the page crashed, what am I supposed to be looking at including and where?
Here is a screenshot of my item.php at the moment with the final code in place - click for image link do I move the whole piece of code or add something inside it??
Thanks
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
Public Gist link below with all code from my item.php file (in-case you needed it all) & the final code bit starts on line 230
gist.github.com/chrisvphogan/44ced725b3d45cc6ea19c8b303518e66
Many Thanks!
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
gist.github.com/kricore/b41f17c14bada4ccdbe90c4f138327ba
Only the introtext is visible, you can also remove it if you want.
gist.github.com/kricore/b41f17c14bada4ccdbe90c4f138327ba#file-item-php-L221-L226
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
Thanks for all your help with this matter, although it was a lot more work than Joomla's one click 'Show Unauthorised Links' it has given me the advantage of working with K2 which will save be time in the future when added content/images/categories/videos etc :)
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
I having having some issues trying to get my sites item.php to work again since updating to the new k2 and Joomla as well:
Below is the old code (you helped me compile in Github) but it doesn't seem to be working as it was in the item.php file.
Could you please advise on how to setup the old code in the new file, because as at present all my members area material is free if a user clicks on an articles image or the title.
Thanksyou!
My old code in the item.php
<?php if($this->item->params->get('itemIntroText')): ?>
<!-- Item introtext -->
<div class="itemIntroText">
<?php echo $this->item->introtext; ?>
</div>
<?php endif; ?>
<?php
if($this->item->params->get('itemFullText')):
$user = JFactory::getUser();
if ($user->guest) {
echo '<a href="https://ourdogsinternational.com/new/index.php/join-now">You must login to see the content!</a>';
} else {
if(!empty($this->item->fulltext)): ?>
<!-- Item Full text -->
<div class="itemFullText">
<?php echo $this->item->fulltext; ?>
</div>
<?php else: ?>
Please Log in or Create an account to join the conversation.
- Krikor Boghossian
-
- Offline
- Platinum Member
- Posts: 15920
getk2.org/documentation/tutorials/174-templating-with-k2-and-the-concepts-of-sub-templates
If not, you have to reapply the code (and override the file this time).
Please Log in or Create an account to join the conversation.
- william white
-
- Offline
- Platinum Member
- Posts: 3722
docs
Please Log in or Create an account to join the conversation.
- Chris Hogan
-
- Offline
- Premium Member
- Posts: 80
At present the page seems to show all the text (and in the same style as the first paragraph) mainly though it just no longer display the 'You must login to see the content!' after a snippet of intro text. goo.gl/houJ6S
Really not to sure why the exact same code or file no longer works!?
Please Log in or Create an account to join the conversation.
- Forum
- K2 Community Forum
- English K2 Community
- [SOLVED] Premium Content Items Invisible IF Not Logged In