News:

SMF 2.1.4 has been released! Take it for a spin! Read more.

Main Menu

Simple Machines Website-Forum Integration

Started by Thantos, April 09, 2007, 06:51:32 PM

Previous topic - Next topic

SleePy

Miles,
While discussion on this is nice, You should ask for support about doing this in the coding discussion boards instead.
Jeremy D ~ Site Team / SMF Developer ~ GitHub Profile ~ Join us on IRC @ Libera.chat/#smf ~ Support the SMF Support team!

Miles Marshall

Sorry I was just replying to were the rest of the people replied to
Need Computer Help? Just want to chat? Come on over! http://www.geekinc.org
"I tried to fix the world but they wouldn't give me the source code"

-Miles

diningin

This is Diningin,food delivery service, Try our order food online,Restaurant Delivery Service,Not Just pizza Delivery Anymore... View more Menu on Dining-in's website. (we just serving Shanghai Pudong area now.)

Flying Drupalist

#23
Hi, I'm attempting to use the code in http://www.simplemachines.org/community/index.php?topic=163770.0 to integrate mediawiki with my forum.

Here's what I added to the monobook theme.


<?php

$ssi_gzip 
true;
$ssi_ban true;

$ssi_theme 16;
ob_start();

require(
"/home/miraploy/www/SSI.php"); 

$context['page_title'] = 'Title Here';

template_main_above();

/**
 * MonoBook nouveau
 *
 * Translated from gwicke's previous TAL template version to remove
 * dependency on PHPTAL.
 *
 * @todo document
 * @addtogroup Skins
 */

if( !defined'MEDIAWIKI' ) )
die( -);

/** */
require_once('includes/SkinTemplate.php');

/**
 * Inherit main code from SkinTemplate, set the CSS and template filter.
 * @todo document
 * @addtogroup Skins
 */
class SkinMonoBook extends SkinTemplate {
/** Using monobook. */
function initPage( &$out ) {
SkinTemplate::initPage$out );
$this->skinname  'monobook';
$this->stylename 'monobook';
$this->template  'MonoBookTemplate';
}
}

/**
 * @todo document
 * @addtogroup Skins
 */
class MonoBookTemplate extends QuickTemplate {
/**
 * Template filter callback for MonoBook skin.
 * Takes an associative array of data set from a SkinTemplate-based
 * class, and a wrapper for MediaWiki's localization database, and
 * outputs a formatted page.
 *
 * @access private
 */
function execute() {
global $wgUser;
$skin $wgUser->getSkin();

// Suppress warnings to prevent notices about missing indexes in $this->data
wfSuppressWarnings();

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="<?php $this->text('xhtmldefaultnamespace'?>" <?php 
foreach(
$this->data['xhtmlnamespaces'] as $tag => $ns) {
?>
xmlns:<?php echo "{$tag}=\"{$ns}\" ";
?>
xml:lang="<?php $this->text('lang'?>" lang="<?php $this->text('lang'?>" dir="<?php $this->text('dir'?>">
<head>
<meta http-equiv="Content-Type" content="<?php $this->text('mimetype'?>; charset=<?php $this->text('charset'?>" />
<?php $this->html('headlinks'?>
<title><?php $this->text('pagetitle'?></title>
<style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/main.css?<?php echo $GLOBALS['wgStyleVersion'?>"; /*]]>*/</style>
<link rel="stylesheet" type="text/css" <?php if(empty($this->data['printable']) ) { ?>media="print"<?php ?> href="<?php $this->text('stylepath'?>/common/commonPrint.css?<?php echo $GLOBALS['wgStyleVersion'?>" />
<link rel="stylesheet" type="text/css" media="handheld" href="<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/handheld.css?<?php echo $GLOBALS['wgStyleVersion'?>" />
<!--[if lt IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/IE50Fixes.css?<?php echo $GLOBALS['wgStyleVersion'?>";</style><![endif]-->
<!--[if IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/IE55Fixes.css?<?php echo $GLOBALS['wgStyleVersion'?>";</style><![endif]-->
<!--[if IE 6]><style type="text/css">@import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/IE60Fixes.css?<?php echo $GLOBALS['wgStyleVersion'?>";</style><![endif]-->
<!--[if IE 7]><style type="text/css">@import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/IE70Fixes.css?<?php echo $GLOBALS['wgStyleVersion'?>";</style><![endif]-->
<!--[if lt IE 7]><script type="<?php $this->text('jsmimetype'?>" src="<?php $this->text('stylepath'?>/common/IEFixes.js?<?php echo $GLOBALS['wgStyleVersion'?>"></script>
<meta http-equiv="imagetoolbar" content="no" /><![endif]-->

<?php print Skin::makeGlobalVariablesScript$this->data ); ?>
               
<script type="<?php $this->text('jsmimetype'?>" src="<?php $this->text('stylepath' ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'?>"><!-- wikibits js --></script>
<?php if($this->data['jsvarurl'  ]) { ?>
<script type="<?php $this->text('jsmimetype'?>" src="<?php $this->text('jsvarurl'  ?>"><!-- site js --></script>
<?php ?>
<?php if($this->data['pagecss'   ]) { ?>
<style type="text/css"><?php $this->html('pagecss'   ?></style>
<?php }
if($this->data['usercss'   ]) { ?>

<style type="text/css"><?php $this->html('usercss'   ?></style>
<?php }
if($this->data['userjs'    ]) { ?>

<script type="<?php $this->text('jsmimetype'?>" src="<?php $this->text('userjs' ?>"></script>
<?php }
if($this->data['userjsprev']) { ?>

<script type="<?php $this->text('jsmimetype'?>"><?php $this->html('userjsprev'?></script>
<?php }
if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>

<!-- Head Scripts -->
<?php $this->html('headscripts'?>
</head>
<body <?php if($this->data['body_ondblclick']) { ?>ondblclick="<?php $this->text('body_ondblclick'?>"<?php ?>
<?php if($this->data['body_onload'    ]) { ?>onload="<?php     $this->text('body_onload')     ?>"<?php ?>
class="mediawiki <?php $this->text('nsclass'?> <?php $this->text('dir'?> <?php $this->text('pageclass'?>">
<div id="globalWrapper">
<div id="column-content">
<div id="content">
<a name="top" id="top"></a>
<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice'?></div><?php ?>
<h1 class="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title'?></h1>
<div id="bodyContent">
<h3 id="siteSub"><?php $this->msg('tagline'?></h3>
<div id="contentSub"><?php $this->html('subtitle'?></div>
<?php if($this->data['undelete']) { ?><div id="contentSub2"><?php     $this->html('undelete'?></div><?php ?>
<?php if($this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html('newtalk')  ?></div><?php ?>
<?php if($this->data['showjumplinks']) { ?><div id="jump-to-nav"><?php $this->msg('jumpto'?> <a href="#column-one"><?php $this->msg('jumptonavigation'?></a>, <a href="#searchInput"><?php $this->msg('jumptosearch'?></a></div><?php ?>
<!-- start content -->
<?php $this->html('bodytext'?>
<?php if($this->data['catlinks']) { ?><div id="catlinks"><?php       $this->html('catlinks'?></div><?php ?>
<!-- end content -->
<div class="visualClear"></div>
</div>
</div>
</div>
<div id="column-one">
<div id="p-cactions" class="portlet">
<h5><?php $this->msg('views'?></h5>
<div class="pBody">
<ul>
<?php foreach($this->data['content_actions'] as $key => $tab) { ?>
<li id="ca-<?php echo Sanitizer::escapeId($key?>"<?php
  if($tab['class']) { ?>
class="<?php echo htmlspecialchars($tab['class']) ?>"<?php }
 ?>
><a href="<?php echo htmlspecialchars($tab['href']) ?>"<?php echo $skin->tooltipAndAccesskey('ca-'.$key?>><?php
 echo htmlspecialchars($tab['text']) ?>
</a></li>
<?php  } ?>
</ul>
</div>
</div>
<div class="portlet" id="p-personal">
<h5><?php $this->msg('personaltools'?></h5>
<div class="pBody">
<ul>
<?php  foreach($this->data['personal_urls'] as $key => $item) { ?>
<li id="pt-<?php echo Sanitizer::escapeId($key?>"<?php
if ($item['active']) { ?>
class="active"<?php ?>><a href="<?php
echo htmlspecialchars($item['href']) ?>
"<?php echo $skin->tooltipAndAccesskey('pt-'.$key?><?php
if(!empty($item['class'])) { ?>
class="<?php
echo htmlspecialchars($item['class']) ?>
"<?php ?>><?php
echo htmlspecialchars($item['text']) ?>
</a></li>
<?php ?>
</ul>
</div>
</div>
<div class="portlet" id="p-logo">
<a style="background-image: url(<?php $this->text('logopath'?>);" <?php
?>
href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"<?php
echo $skin->tooltipAndAccesskey('n-mainpage'?>
></a>
</div>
<script type="<?php $this->text('jsmimetype'?>"> if (window.isMSIE55) fixalpha(); </script>
<?php foreach ($this->data['sidebar'] as $bar => $cont) { ?>
<div class='portlet' id='p-<?php echo Sanitizer::escapeId($bar?>'<?php echo $skin->tooltip('p-'.$bar?>>
<h5><?php $out wfMsg$bar ); if (wfEmptyMsg($bar$out)) echo $bar; else echo $out?></h5>
<div class='pBody'>
<ul>
<?php  foreach($cont as $key => $val) { ?>
<li id="<?php echo Sanitizer::escapeId($val['id']) ?>"<?php
if ( $val['active'] ) { ?>
class="active" <?php }
?>
><a href="<?php echo htmlspecialchars($val['href']) ?>"<?php echo $skin->tooltipAndAccesskey($val['id']) ?>><?php echo htmlspecialchars($val['text']) ?></a></li>
<?php ?>
</ul>
</div>
</div>
<?php ?>
<div id="p-search" class="portlet">
<h5><label for="searchInput"><?php $this->msg('search'?></label></h5>
<div id="searchBody" class="pBody">
<form action="<?php $this->text('searchaction'?>" id="searchform"><div>
<input id="searchInput" name="search" type="text"<?php echo $skin->tooltipAndAccesskey('search');
if( isset( $this->data['search'] ) ) {
?>
value="<?php $this->text('search'?>"<?php ?> />
<input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg('searcharticle'?>" />&nbsp;
<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton'?>" />
</div></form>
</div>
</div>
<div class="portlet" id="p-tb">
<h5><?php $this->msg('toolbox'?></h5>
<div class="pBody">
<ul>
<?php
if($this->data['notspecialpage']) { ?>

<li id="t-whatlinkshere"><a href="<?php
echo htmlspecialchars($this->data['nav_urls']['whatlinkshere']['href'])
?>
"<?php echo $skin->tooltipAndAccesskey('t-whatlinkshere'?>><?php $this->msg('whatlinkshere'?></a></li>
<?php
if( $this->data['nav_urls']['recentchangeslinked'] ) { ?>

<li id="t-recentchangeslinked"><a href="<?php
echo htmlspecialchars($this->data['nav_urls']['recentchangeslinked']['href'])
?>
"<?php echo $skin->tooltipAndAccesskey('t-recentchangeslinked'?>><?php $this->msg('recentchangeslinked'?></a></li>
<?php  }
}
if(isset($this->data['nav_urls']['trackbacklink'])) { ?>

<li id="t-trackbacklink"><a href="<?php
echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
?>
"<?php echo $skin->tooltipAndAccesskey('t-trackbacklink'?>><?php $this->msg('trackbacklink'?></a></li>
<?php  }
if($this->data['feeds']) { ?>

<li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
?>
<span id="feed-<?php echo Sanitizer::escapeId($key?>"><a href="<?php
echo htmlspecialchars($feed['href']) ?>
"<?php echo $skin->tooltipAndAccesskey('feed-'.$key?>><?php echo htmlspecialchars($feed['text'])?></a>&nbsp;</span>
<?php ?></li><?php
}

foreach( array('contributions''blockip''emailuser''upload''specialpages') as $special ) {

if($this->data['nav_urls'][$special]) {
?>
<li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
?>
"<?php echo $skin->tooltipAndAccesskey('t-'.$special?>><?php $this->msg($special?></a></li>
<?php }
}

if(!empty($this->data['nav_urls']['print']['href'])) { ?>

<li id="t-print"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['print']['href'])
?>
"<?php echo $skin->tooltipAndAccesskey('t-print'?>><?php $this->msg('printableversion'?></a></li><?php
}

if(!empty($this->data['nav_urls']['permalink']['href'])) { ?>

<li id="t-permalink"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['permalink']['href'])
?>
"<?php echo $skin->tooltipAndAccesskey('t-permalink'?>><?php $this->msg('permalink'?></a></li><?php
} elseif ($this->data['nav_urls']['permalink']['href'] === '') { ?>

<li id="t-ispermalink"<?php echo $skin->tooltip('t-ispermalink'?>><?php $this->msg('permalink'?></li><?php
}

wfRunHooks'MonoBookTemplateToolboxEnd', array( &$this ) );
?>

</ul>
</div>
</div>
<?php
if( $this->data['language_urls'] ) { ?>

<div id="p-lang" class="portlet">
<h5><?php $this->msg('otherlanguages'?></h5>
<div class="pBody">
<ul>
<?php foreach($this->data['language_urls'] as $langlink) { ?>
<li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
?>
<a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'?></a></li>
<?php ?>
</ul>
</div>
</div>
<?php ?>
</div><!-- end of the left (by default at least) column -->
<div class="visualClear"></div>
<div id="footer">
<?php
if($this->data['poweredbyico']) { ?>

<div id="f-poweredbyico"><?php $this->html('poweredbyico'?></div>
<?php  }
if($this->data['copyrightico']) { ?>

<div id="f-copyrightico"><?php $this->html('copyrightico'?></div>
<?php }

// Generate additional footer links
?>

<ul id="f-list">
<?php
$footerlinks = array(
'lastmod''viewcount''numberofwatchingusers''credits''copyright',
'privacy''about''disclaimer''tagline',
);
foreach( $footerlinks as $aLink ) {
if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
?>
<li id="<?php echo$aLink?>"><?php $this->html($aLink?></li>
<?php  }
}
?>

</ul>
</div>

<?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
</div>
<?php $this->html('reporttime'?>
<?php if ( $this->data['debug'] ): ?>
<!-- Debug output:
<?php $this->text'debug' ); ?>

-->
<?php endif; ?>
</body></html>
<?php
wfRestoreWarnings();
// end of execute() method
// end of class
template_main_below();
?>


Now that doesn't work, ofc. I can think of several pitfalls off of the top of my head. But can somebody point me in the right direction? Thanks.

brianjw


makarkin

Hi dear. I need Integration SMF into CUBECART. Can you help me ? I think a lot of people need this. I can give some money !

Thank you very much and have a nice day!, Vitaly

brianjw

They are just distributing the code they're using here. I don't think is the section to ask requests for integrations. Maybe Help Wanted?

Gary

#27
Indeed help wanted would be a better choice
Gary M. Gadsdon
Do NOT PM me unless I say so
War of the Simpsons
Bongo Comics Fan Forum
Youtube Let's Plays

^ YT is changing monetisation policy, help reach 1000 sub threshold.

mtindor

Daniel,

I put the code below into 'test.php'.   I see it gives the header and footer as espected.  However, it takes 3+ times longer to load that code than it takes to load the real forum index (with all of the content).   What would be causing the page to take so much longer to load with those simple few lines of code?

Mike


Quote from: Daniel15 on May 30, 2007, 02:14:00 AM
To add a page "into" SMF, try this code in a seperate PHP file:

<?php
error_reporting
(E_ALL);

// Theme we're going to use
$ssi_theme 4;
// Layers we're going to use
$ssi_layers = array('main');
// Enable GZip compression (saves bandwidth)
$ssi_gzip true;

require(
'SSI.php');

echo 
'See? SMF is cool :)';

ssi_shutdown();
?>


You'll need to change the $ssi_theme = 4 line to the correct theme ID.

HecKel

Hi!

Sorry about the bump, I only notice this now :(

Can you put this "tutorial" in http://docs.simplemachines.org/ ? I think a lot of people need this, and there is easier to find ;)

Btw, great job!
Quote from: Eliana Tamerin on August 23, 2008, 04:10:10 PM
SMF 7 is where it gets good. That has time travel. You can go back and post before the guy who flamed you. :P

bassbass

excuse my ignorance, i am not sure if i understand this correctly.  am i to combine all the codes in the first post in one file and call it "integrate.php", then change the code to reference to my website and server?  i guess i need an answer to this question first before i go to the next questions.  i can't wait to implement this into my forum, great feature.  Thanks.

bassbass

Hi again, my intentions are not to bump this up, but wanted to know if anyone is using this Website-Forum Integration, also if anyone cam recommend someone that can set it up for me.  Thanks.

Deaks

http://www.simplemachines.org/community/ssi_examples.php

try this, on my website

http://runicdesigns.info I use 1.1.5 for customers, and used the above page that helped me alot :) first time using the ssi feature :)
~~~~
Former SMF Project Manager
Former SMF Customizer

"For as lang as hunner o us is in life, in nae wey
will we thole the Soothron tae owergang us. In truth it isna for glory, or wealth, or
honours that we fecht, but for freedom alane, that nae honest cheil gies up but wi life
itsel."

bassbass

thanks RunicWarrior, i am not sure what to do with the ssi...i used it on a test forum sometime ago, not sure what i was after, but i did get it to display the same as the link you posted http://www.simplemachines.org/community/ssi_examples.php, wasn't sure what it did but did really get into it.  i guess my question is, is there a step by step as to how to install it and integrate it with my current forum?  of course I'll install a test forum and play with it until i fully understand it, perhaps i am asking a bit too much for some one to hold my hand through the initial setup.


Deaks

To use SSI.php in your page add at the very top of your page before the <html> tag on line 1:
<?php require("SSI.php"); ?>

changing the address to suit your needs compared to where your forum is located :)

then depending on what you want added depends on the code so for example if you want your forum stats to show on the page you would add

<?php ssi_boardStats(); ?>

where you want the to show ...
~~~~
Former SMF Project Manager
Former SMF Customizer

"For as lang as hunner o us is in life, in nae wey
will we thole the Soothron tae owergang us. In truth it isna for glory, or wealth, or
honours that we fecht, but for freedom alane, that nae honest cheil gies up but wi life
itsel."

bassbass

thanks for that RunicWarrior, I'll play with it and see how far i can get.  thanks again,

Bass

Apllicmz

good
work

but i see here ..

Each file is broken up into 4 main parts

    * Setup variables not see
    * Bringing in integrate.php  i see yes
    * A source function not see
    * A template function not see



Thantos

Setup variables are all the variables being defined prior to integrate.php being included.

The source function is file_source() and the template function is template_file_template()

Apllicmz

did see what i need...

How can puty like that picture





tedhogan

#39
I'm not sure what's wrong, but I get this error when I try to run the sample script:

Unable to load the 'main_above' template.


It works when I have the $ssl_layers assignment commented out. I am using the default theme ($ssi_theme = 1)



-----------------------
<?php
error_reporting(E_ALL);

// Theme we're going to use
$ssi_theme = 4;
// Layers we're going to use
$ssi_layers = array('main');
// Enable GZip compression (saves bandwidth)
$ssi_gzip = true;

require('SSI.php');

echo 'See? SMF is cool :)';

ssi_shutdown();
?>


-------------------------






Can someone please point me in the right direction?


Thanks,
Ted

Advertisement: