Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 06-08-2015, 02:36 PM
Bastien's Avatar
Bastien Bastien is offline
 
Join Date: May 2015
Location: France
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Display a variable in my template

Hello,

I created a php file, the display is correct, except the variable $out that doesn't display where it should ... with a echo, it display well the result of my query, but I can't display it directly in my template.

Could someone help me ?

This is my php file :

Code:
<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT', 'fournisseurs');
define('CSRF_PROTECTION', true);  
// change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array('index',
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
// chdir('/var/www/vhosts/lecoinduprothesiste.fr/httpdocs/forums');
require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = construct_navbits(array('' => 'Options fournisseurs'));
$navbar = render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = '';

$item='';
	$liste_produits_parent = $vbulletin->db->query_read_slave("
		SELECT *
		FROM devis_produits AS produits
		WHERE est_parent = 1
		ORDER by id_affichage
	");
	while ($produit = $vbulletin->db->fetch_array($liste_produits_parent))
	{		
	$item .= "$produit[nom]";
	}
	$vbulletin->db->free_result($liste_produits_parent);


echo $item;


// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater = vB_Template::create('FOURNISSEURS');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
$templater->register('out', $item);
print_output($templater->render());

?>
and this is my FOURNISSEURS template :

Code:
{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
  <head>
    <title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
    {vb:raw headinclude}
    {vb:raw headinclude_bottom}
  </head>
  <body>
    
    {vb:raw header}
    
    {vb:raw navbar}
    
    <div id="pagetitle">
      <h1>{vb:raw pagetitle}</h1>
    </div>
    
    <h2 class="blockhead">G?rez vos produits commercialis?s</h2>
    <div class="blockbody">
      <div class="blockrow" align="center">
 



      Ici, vous pouvez g?rer les produits que vous commercialisez, et ainsi etre contact? quand un membre du site fait une demande de devis.
<p><br /><p>Chaque fois qu'une demande de devis est faite correspondant ? un produit que vous commercialisez, vous recevrez automatiquement un courriel, afin de pouvoir r?pondre ? cette demande de devis.
<p><br /><p>

Votre pseudo est {vb:raw bbuserinfo.username}, votre id : {vb:raw bbuserinfo.userid}, votre usergroupid : {vb:raw bbuserinfo.usergroupid}

<br /><br />
articles : $out $item {vb raw:out} {vb raw:item}


      </div>
    </div>
    
    {vb:raw footer}
  </body>
</html>
How could I display this variable $item ?!
Reply With Quote
  #2  
Old 06-08-2015, 03:42 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

In the template it should be:
Code:
{vb:raw out}

That's if you want the name to be able to contain html, or if you're sure it doesn't contain any special characters. If you think it could contain special characters (or if you're getting the field from a user so you're not sure what it might contain) you could use {vb:var out} instead.
Reply With Quote
  #3  
Old 06-08-2015, 03:43 PM
TheAdminMarket's Avatar
TheAdminMarket TheAdminMarket is offline
 
Join Date: Jun 2013
Location: Thessaloniki, Greece
Posts: 511
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try this:
Code:
articles : {vb:raw out} {vb:raw item}
Reply With Quote
  #4  
Old 06-08-2015, 05:39 PM
Bastien's Avatar
Bastien Bastien is offline
 
Join Date: May 2015
Location: France
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm so stupid .... I'll try !

Thank you for helping, I'm back to vbulletin after about 10years without coding, and it's really not easy, everything has so much changed !!! This code is prety simple, but I have to understand how ever

This was my old account : https://vborg.vbsupport.ru/search.php?searchid=22636405

I'll b back

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

It works ! thank you, but now I've another problem
Reply With Quote
  #5  
Old 06-17-2015, 05:08 PM
Bastien's Avatar
Bastien Bastien is offline
 
Join Date: May 2015
Location: France
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

So, my page fournisseurs.php is now finished and it works well, thanks to you

Now I need, when a user is in the wanted forum, to display a select box to choose the type of product he needs.

I added it to the newthread template :

Code:
<vb:if condition="$foruminfo['forumid']=='7'">

<label for="subject" class="full">Produit concern? :</label>
<select name="produit">
	<option value="" selected="selected">Faites votre choix</option>
	{vb:raw template_liste}
	<option value="7" style="font-weight:bold; background:#EBEBE6">7</option>
	<option value="8" style="font-weight:italic;">8</option>
</select>
<br />
<font size=1>
	<i>Un produit "gris?" est une cat?gorie rassemblant la liste de tous SES produits, soit tous les produits en dessous de celle ci, jusqu'? la prochaine cat?gorie</i>
</font>
<br /><br />
</vb:if>
and added a hook linked to newthread_start :
Code:
  $liste="
<option value=\"3\">3</option>
<option value=\"4\">4</option>";

$templater=vB_Template::create('liste_produits');
$templater->register('liste ', $liste); 
$liste_produits .= $templater->render();
And finally created this template liste_produits
Code:
<option value="1">1</option>
<option value="2">2</option>

{vb:raw liste}
But the content of this new template is not displayed, what did I do wrong ?
Attached Images
File Type: png Capture.PNG (46.6 KB, 0 views)
Reply With Quote
  #6  
Old 06-17-2015, 08:22 PM
Bastien's Avatar
Bastien Bastien is offline
 
Join Date: May 2015
Location: France
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Pfiouuuuuuuuuuuu, I did it ....

In the newthread template, added :


Code:
<vb:if condition="$foruminfo['forumid']=='7'">
<label for="subject" class="full">Produit concern? :</label>
<select name="produit">
<option value="" selected="selected">Faites votre choix</option>
{vb:raw liste_produits}

</select><br />
<font size=1><i>Un produit "gris?" est une cat?gorie rassemblant la liste de tous SES produits, soit tous les produits en dessous de celle ci, jusqu'? la prochaine cat?gorie</i></font><br /><br />
</vb:if>
In my hook linked to newthread_start :
Code:
$listes_produits = $vbulletin->db->query_read("
			SELECT *
			FROM devis_produits
			ORDER by id
			");			
		
			
while ($liste_produit = $vbulletin->db->fetch_array($listes_produits))
{

if ($liste_produit[est_parent]==1)
$liste .="<option value=\"$liste_produit[id]\" style=\"font-weight:bold; background:#EBEBE6\">$liste_produit[nom]</option>";
else $liste .="<option value=\"$liste_produit[id]\">$liste_produit[nom]</option>";
}  


$templater = vB_Template::create('liste_produits');
    $templater->register('liste', $liste);
$templatevalues['liste_produits'] = $templater->render();
vB_Template::preRegister('newthread', $templatevalues);
And my template liste_produits :

Code:
{vb:raw liste}
This is the result
Attached Images
File Type: jpg Capture2.jpg (45.9 KB, 0 views)
Reply With Quote
Благодарность от:
MarkFL
  #7  
Old 06-17-2015, 09:13 PM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you for taking the time to post your solution...others who may face a similar situation will benefit from your post.
Reply With Quote
  #8  
Old 06-17-2015, 09:27 PM
Bastien's Avatar
Bastien Bastien is offline
 
Join Date: May 2015
Location: France
Posts: 70
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That's why I do it

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

I get an other problem.

So I get this in newthread



which is, in HTML :

HTML Code:
<label for="subject" class="full">Produit concern? :</label>
<select name="produit">
<option value="" selected="selected">Faites votre choix</option>
<option value="1" style="font-weight:bold; background:#EBEBE6">Platre</option>
<option value="2">Classe I - de Paris</option>
<option value="3">classe III</option>
<option value="4">classe IV</option>
<option value="5" style="font-weight:bold; background:#EBEBE6">CFAO</option>
<option value="6">Scanner 3D</option>
<option value="7">Imprimante 3D</option>
<option value="8" style="font-weight:bold; background:#EBEBE6">Moteurs</option>
<option value="9">Pi?ce ? main</option>
<option value="11">Turbine</option>
<option value="12">Aspirations</option>
<option value="13">avion</option>
<option value="15" style="font-weight:bold; background:#EBEBE6">C?ramique</option>


</select>
I would like to force the user, to select a product when creating a new thread, so I created a hook linked to newthread_form_complete :

Code:
if(THIS_SCRIPT == newthread AND $post['produit'] == '')
{	
		$errors[] = $vbphrase["force_produit_error"];
}
but it doesn't return an error if the user has not touched at the select box.

Could someone help me ?

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

Solved !

The hook used has to be linked to newpost_process

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

Not solved

It always display the error, even if the select box is filled ...

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

I added in a hook linked to newthread_start :

Code:
$vbulletin->input->clean_array_gpc('p', array(
		'produit'         => TYPE_STR));

$newpost['produit'] =& $vbulletin->GPC['produit'];
It seems to be good I just need to restrict it to the wanted forum now
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:54 PM.


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.03835 seconds
  • Memory Usage 2,283KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (12)bbcode_code
  • (1)bbcode_html
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (8)post_thanks_box
  • (1)post_thanks_box_bit
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (8)post_thanks_postbit_info
  • (8)postbit
  • (2)postbit_attachment
  • (8)postbit_onlinestatus
  • (8)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • postbit_attachment
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete