vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Add new temp but error (https://vborg.vbsupport.ru/showthread.php?t=299482)

Easy5s.net 06-25-2013 11:15 AM

Add new temp but error
 
I created a new temp for my product but faulty:

Code:

Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\forum\includes\class_core.php(4633) : eval()'d code on line 90

this is code my temp test:
Code:

                        <div class="blockrow">
                                <label for="pmrecips_ctrl" class="floatcontainer full">
                                        {vb:rawphrase recipients}:
                                        <span class="hidden" onclick="return swapbcc(this);" id="bccspan">[<a href="javascript://" >{vb:rawphrase bcc}</a>]</span>       
                                </label>
                                <script type="text/javascript" src="clientscript/vbulletin_ajax_suggest.js?v={vb:raw vboptions.simpleversion}"></script>
                                <div id="pmrecips" class="popupmenu nomouseover noclick nohovermenu">
                                        <textarea class="primary full textbox popupctrl" id="pmrecips_ctrl" name="recipients" rows="{vb:if is_browser('mozilla'), 1, 2}" cols="50"  tabindex="1">{vb:raw pm.recipients}</textarea>
                                </div>
                                <script type="text/javascript">
                                <!--
                                        recip_sugg = new vB_AJAX_NameSuggest('recip_sugg', 'pmrecips_ctrl', 'pmrecips');
                                        <vb:if condition="$show['sendmultiple']">recip_sugg.allow_multiple = true;</vb:if>
                                //-->
                                </script>
                                <p class="singledescription">{vb:rawphrase recipients_desc}</p>
                        </div>

And this code plugin:

Code:

$templater = vB_Template::create('test');
$test .= $templater->render();

$vbulletin->templatecache['newthread'] = str_replace('\' . $messagearea . \'', '<div class="blockrow">' . $test . '</div>\' . $messagearea . \'', $vbulletin->templatecache['newthread']);


kh99 06-25-2013 01:11 PM

What's in the template cache is php code, and I'd guess that the result of your str_replace() is php code with an error. But I don't know for sure because I'm not sure what $messagearea is set to.

Easy5s.net 06-25-2013 01:40 PM

I just test 1 plugin and 1 temp was above fault, but when I remove the code

Quote:

<script type="text/javascript">
<!--
recip_sugg = new vB_AJAX_NameSuggest('recip_sugg', 'pmrecips_ctrl', 'pmrecips');
<vb:if condition="$show['sendmultiple']">recip_sugg.allow_multiple = true;</vb:if>
//-->
</script>
no error in the temp but the temp does not work, the goal here is to remove a user name it will show up as full as sent private.

I want to create a username input (as in page send private) when users create new thread

nhawk 06-25-2013 01:44 PM

Try this..

Code:

$vbulletin->templatecache['newthread'] = str_replace($messagearea, '<div class="blockrow">' . $test . '</div>' . $messagearea, $vbulletin->templatecache['newthread']);

Easy5s.net 06-25-2013 01:49 PM

Quote:

Originally Posted by nhawk (Post 2430393)
Try this..

Code:

$vbulletin->templatecache['newthread'] = str_replace($messagearea, '<div class="blockrow">' . $test . '</div>' . $messagearea, $vbulletin->templatecache['newthread']);

thank you, no error but not show in temp :)

nhawk 06-25-2013 01:53 PM

Wait a second there is no $messagearea in the template you're trying to replace it in.

You want something like this...

Code:

$vbulletin->templatecache['newthread'] = str_replace('{vb:raw messagearea}', '<div class="blockrow">' . $test . '</div>' . '{vb:raw messagearea}', $vbulletin->templatecache['newthread']);
And it should be used in the process_templates_complete hook.

Easy5s.net 06-25-2013 01:58 PM

not show :(


My first code it displays fine if removing line

PHP Code:

                <script type="text/javascript">
                <!--
                    
recip_sugg = new vB_AJAX_NameSuggest('recip_sugg''pmrecips_ctrl''pmrecips');
                    <
vb:if condition="$show['sendmultiple']">recip_sugg.allow_multiple true;</vb:if>
                
//-->
                
</script

but if removed, the display features reminiscent name inactive

Scanu 06-25-2013 02:02 PM

Template cache is compiled so this {vb:raw messagearea} becames $messagearea if i'm not wrong.
You can try this
PHP Code:

$vbulletin->templatecache['newthread'] = str_replace($messagearea'<div class="blockrow">' $test '</div>\' . $messagearea . \''$vbulletin->templatecache['newthread']); 


nhawk 06-25-2013 02:05 PM

Quote:

Originally Posted by Scanu (Post 2430402)
Template cache is compiled so this {vb:raw messagearea} becames $messagearea if i'm not wrong.
You can try this
PHP Code:

$vbulletin->templatecache['newthread'] = str_replace($messagearea'<div class="blockrow">' $test '</div>\' . $messagearea . \''$vbulletin->templatecache['newthread']); 


You're right. Normally I use preg_replace and compile_template. I forgot the compile_template part. :o

Easy5s.net 06-25-2013 02:06 PM

Quote:

Originally Posted by Scanu (Post 2430402)
Template cache is compiled so this {vb:raw messagearea} becames $messagearea if i'm not wrong.
You can try this
PHP Code:

$vbulletin->templatecache['newthread'] = str_replace($messagearea'<div class="blockrow">' $test '</div>\' . $messagearea . \''$vbulletin->templatecache['newthread']); 


not work, i user hook newthread_start

Scanu 06-25-2013 02:07 PM

It could be a problem of the condition try to remove only the condition and leave the rest of the code just to see

--------------- Added [DATE]1372173285[/DATE] at [TIME]1372173285[/TIME] ---------------

else use this code by Boofo in the "parse_templates" hook
PHP Code:

$templater vB_Template::create('test');
$test $templater->render();
require_once(
DIR '/includes/class_template_parser.php');
$parser = new vB_TemplateParser('{vb:raw messagearea}');
$parser->dom_doc = new vB_DomDocument($parser->fetch_dom_compatible());
$find trim($parser->_parse_nodes($parser->dom_doc->childNodes()));
$vbulletin->templatecache['newthread'] = str_replace($find$test$vbulletin->templatecache['newthread']); 


Easy5s.net 06-25-2013 02:16 PM

Quote:

Originally Posted by Scanu (Post 2430409)
It could be a problem of the condition try to remove only the condition and leave the rest of the code just to see

--------------- Added [DATE]1372173285[/DATE] at [TIME]1372173285[/TIME] ---------------

else use this code by Boofo
PHP Code:

$templater vB_Template::create('test');
$test $templater->render();
require_once(
DIR '/includes/class_template_parser.php');
$parser = new vB_TemplateParser('{vb:raw messagearea}');
$parser->dom_doc = new vB_DomDocument($parser->fetch_dom_compatible());
$find trim($parser->_parse_nodes($parser->dom_doc->childNodes()));
$vbulletin->templatecache['newthread'] = str_replace($find$test$vbulletin->templatecache['newthread']); 


i have try it but not work :confused:

Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\forum\includes\class_core.php(4633 ) : eval()'d code on line 91

Scanu 06-25-2013 02:27 PM

Mmh did you use "parse_templates" as hook location? If yes then i don't know what's the problem maybe this one is a little tricky but it should 100% works
Hook: parse_templates
PHP Code:

$template 'your template code';

require_once(
DIR '/includes/class_template_parser.php');

$parser = new vB_TemplateParser('{vb:raw messagearea}');
$parser->dom_doc = new vB_DomDocument($parser->fetch_dom_compatible());
$find trim($parser->_parse_nodes($parser->dom_doc->childNodes()));

$parser = new vB_TemplateParser($template);
$parser->dom_doc = new vB_DomDocument($parser->fetch_dom_compatible());
$replace trim($parser->_parse_nodes($parser->dom_doc->childNodes()));

$vbulletin->templatecache['newthread'] = str_replace($find$replace$vbulletin->templatecache['newthread']); 

Put your template code in the template variable and remember to escape quotes!

Easy5s.net 06-25-2013 02:34 PM

1 Attachment(s)
Quote:

Originally Posted by Scanu (Post 2430421)
Mmh did you use "parse_templates" as hook location? If yes then i don't know what's the problem maybe this one is a little tricky but it should 100% works
Hook: parse_templates
PHP Code:

$template 'your template code';

require_once(
DIR '/includes/class_template_parser.php');

$parser = new vB_TemplateParser('{vb:raw messagearea}');
$parser->dom_doc = new vB_DomDocument($parser->fetch_dom_compatible());
$find trim($parser->_parse_nodes($parser->dom_doc->childNodes()));

$parser = new vB_TemplateParser($template);
$parser->dom_doc = new vB_DomDocument($parser->fetch_dom_compatible());
$replace trim($parser->_parse_nodes($parser->dom_doc->childNodes()));

$vbulletin->templatecache['newthread'] = str_replace($find$replace$vbulletin->templatecache['newthread']); 

Put your template code in the template variable and remember to escape quotes!

with the above code it is not messagearea
Attachment 145574

Scanu 06-25-2013 02:35 PM

What's your exact code plugin?

Easy5s.net 06-25-2013 02:43 PM

1 Attachment(s)
yes :)

Scanu 06-25-2013 02:46 PM

this is the final code just replace "your template code" with your template code and it will work fine unless you won't escape quotes :)
PHP Code:

$template 'your template code'

require_once(
DIR '/includes/class_template_parser.php'); 

$parser = new vB_TemplateParser('{vb:raw messagearea}'); 
$parser->dom_doc = new vB_DomDocument($parser->fetch_dom_compatible()); 
$find trim($parser->_parse_nodes($parser->dom_doc->childNodes())); 

$parser = new vB_TemplateParser($template); 
$parser->dom_doc = new vB_DomDocument($parser->fetch_dom_compatible()); 
$replace trim($parser->_parse_nodes($parser->dom_doc->childNodes())); 

$vbulletin->templatecache['newthread'] = str_replace($find$find.$replace$vbulletin->templatecache['newthread']); 


Easy5s.net 06-25-2013 02:52 PM

not work, you can TeamViewer help me :(

I need to create a user name is entered in newthread, and the user name are displayed like private.php page?do=newpm

Scanu 06-25-2013 03:04 PM

My code is working? Do you want to add an input in the newthread page where users put username?

Easy5s.net 06-25-2013 03:10 PM

Quote:

Originally Posted by Scanu (Post 2430435)
My code is working? Do you want to add an input in the newthread page where users put username?

Your code does not work.

I want to create a new thread, enter username like this
Attachment 145576

Scanu 06-25-2013 03:15 PM

That's not easy as it seems that's a lot of work! You can't copy and paste codes from pm templates :) and even if you get this working on newthread page there is other works to do in the thread creation process! Just to know why do you need this? :)

Zachery 06-25-2013 03:23 PM

You don't enter usernames in the newthread area though...

Easy5s.net 06-25-2013 03:23 PM

I feel good and this is the function. I want to try it or to create new thread.

Zachery 06-25-2013 03:25 PM

Why... you don't send new threads to people. You'd have to completely disable the ckeditor and add the custom code to it, or rewrite the vBulletin code to work inside of it (ckeditor).

Easy5s.net 06-25-2013 03:27 PM

Quote:

Originally Posted by Zachery (Post 2430444)
You don't enter usernames in the newthread area though...

I think if I can perform automatically add temp for my product. I not want to manually add temp :(

Easy5s.net 06-25-2013 03:44 PM

blabla, i have done :D

Scanu 06-25-2013 03:51 PM

Yes but this doesn't make sense after you put an username what do you expect from it? I mean nothing will happen :D

Zachery 06-25-2013 04:02 PM

What does that field even do though?


All times are GMT. The time now is 06:50 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01324 seconds
  • Memory Usage 1,855KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (6)bbcode_code_printable
  • (9)bbcode_php_printable
  • (8)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (28)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete