• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Display Contact form in a page?

Morgain

Well-known member
#3
It didn't like that. I tried it above and below the title line, and below at the bottom.

<xen:include template="contact" />

This is on the "contact " template to make it load as an ordinary page, right?
 

Morgain

Well-known member
#4
OK I got that worked out - it needed to close with </contact>
That works for making the Contact form appear on ANOTHER page - like when the private Members' page is clicked by an outsider.

Except it appears without CAPTCHA?
There's a "helper_captcha_unit" linked to the contact form template. It seems the "include" doesn't call that.



But actually what I wanted here was to make the Contact page appear on a normal page anyway - not be a popup if you are a member too.
 

Brogan

XenForo moderator
Staff member
#5
I'm not quite sure what it is your're trying to do.

If you remove the red portion below from the code in the footer template though, it will open in a new page.

Code:
<li><a href="{xen:link 'misc/contact'}" class="OverlayTrigger" data-overlayOptions="{&quot;fixed&quot;:false}">{xen:phrase contact_us}</a></li>
The captcha will only appear for guests.
 

Morgain

Well-known member
#6
Thanks Brogan that's exactly it.
That is looking very good now.

I wonder if there's a code snippet could be added maybe to EXTRA.css so it's global,
so if a visitor clicks ANY private link they get the contact form just like this?

That would be mega cool for my site which is mostly private.
 

Brogan

XenForo moderator
Staff member
#7
You can't do that with CSS, you would need to wrap each item in a conditional statement.

Other than nodes and profiles pages though, which can be protected from guests using permissions, the only other page you would need to restrict is the members page, which you have already done.
 

Morgain

Well-known member
#8
I found there's a bit more code has to be commented out in that footer link.
Just to help anyone else wanting the same - maybe there are others a bit weird like me!
it then looks like this:

Code:
<ul class="footerLinks">
            <xen:hook name="footer_links">
                <xen:if is="{$xenOptions.contactUrl.type} === 'default'">
                    <li><a href="{xen:link 'misc/contact'}"> <!-- class="OverlayTrigger"  data-overlayOptions="{&quot;fixed&quot;:false}"> --> {xen:phrase contact_us}</a></li>[/CODE=rich]
 

Morgain

Well-known member
#9
You can't do that with CSS, you would need to wrap each item in a conditional statement.

Other than nodes and profiles pages though, which can be protected from guests using permissions, the only other page you would need to restrict is the members page, which you have already done.
Yes exactly - lots and lots of node forums! Oh maybe if I put the include contact bit on the forum_view template? I'll try that.
 

Morgain

Well-known member
#10
Yes that works.I'm delighted as that will bring in a few members. We get a steady trickle through various connections but no harm in adding a few more this way.

But does that mean they get shut out even if I've set a node to public access?
(Sorry atm I'm struggling with access permissions and I seem to have set everything to private! so I can't test)
 

Morgain

Well-known member
#11
Brogan the captcha is not working for an outsider who wants to use the Contact form.

You thought at first it was not showing Captcha to me because I'm a member.
But I now have feedback that an outsider doesn't see it either and can't send the form because they get a captcha not filled in error.
I got someone else to test it to confirm.

You can test on www.housemorgain.co.uk/circle
then click Members on the navbar.
 

Morgain

Well-known member
#13
Thank you yes.

But if you click a private area like Members, where you helpedme add code, you get a message explaining PLUS the COntact form.
That's where the captcha doesn't display and throws error.
 

Brogan

XenForo moderator
Staff member
#14
Can you provide a link?

Why don't you just link to the main contact page instead of embedding it in a Page node?
 

Morgain

Well-known member
#15
The code you gave me works like this.
I put
Code:
<!-- hide from unreg -->
<xen:if is="{$visitor.user_id}">
at the top of the page under its title.

Then after the sidebar I put
Code:
<!-- End hide for unreg -->
<xen:else />
<div class="RoundedDiv" style="padding: 15px; float-left; margin-left: 100px; margin-top: 30px; margin-bottom: 20px; font-size: medium; color: green; background: #ffffff; width: 600px;">
<center><b>If you are a member of House Morgain</b> you are seeing this message because you are not logged in - probably you timed out. Log in using the link top right.<br /><br />
 
<b>TO OUR VISITORS</b><br />we apologise for the inconvenience to you, but the link you clicked is a private members' only area.<br />
To join House Morgain so you can access the whole community<br />instead of just the public areas, <br />please contact us with a little bit of information about what interests you in our community.</center>
</div>
 
<div style="float: left;  margin-left: 100px;">
<xen:include template="contact" /></include>
</div>
</xen:if>
That means the outsider sees the Contact form.
But if I open the contact template it has a connected template helper_captcha_unit
This doesn't automatically connect to the contact form if it's embedded in another page. It doesn't show as a tab (connected template) if I look at member_list though contact does now show as a tab there.

I tried putting
Code:
<xen:include template="helper_captcha_unit" /></include>
with the include for the contact form but it still doesn't display - although progress! helper_captcha_unit now shows as a connected tab with member_list
I placed the second include right under the first. (Putting it inside the first threw an error)
 

Brogan

XenForo moderator
Staff member
#16
In which case the captcha won't work embedded on a Page node, you will likely need a php callback to get it to function.

You could embed the page using an iframe but it's ugly and not really a viable solution.
 

Morgain

Well-known member
#17
No I agree I hate frames.

OK I'll make it a simple link.

Maybe someone else might do the php callback for us later. It makes a really neat way to get outsiders to write in - of course every time you ask them to click it's a barrier.

Thank you for your help as always Brogan.
 

Gene Steinberg

Well-known member
#18
I have a sort of similar problem for which I could use guidance.

I would like to link to the contact form from another page on our site, a regular HTML page. But if I just use the direct link to Contact Us, it doesn't deliver the form in an overlay, and, when someone uses it, it doesn't clear when the message is sent. Thus I get several messages, rather than one.

Hope this is clear.

So is there a way to do this without reinventing the wheel -- but I'll go for that to with proper guidance.