Joomla!
http://forum.joomla.org/

Hack to allow Mambot/Plugin support in Mamblog
http://forum.joomla.org/viewtopic.php?f=39&t=142185
Page 1 of 1

Author:  bucabay [ Sat Feb 17, 2007 6:58 am ]
Post subject:  Hack to allow Mambot/Plugin support in Mamblog

By default Mamblog does not support any plugins/mambots. I've added a short hack that will give it that support so it can use any commenting component and other many content plugin's available for Joomla.

What you have to do is install mamblog, then look for the file:

components/com_mamblog/mamblog.html.php

(or you can edit the file before installing the component, it should be in the base directory of the zip/tar installation package)


In mamblog.html.php look for the line which has:
Code:
<?php echo $blog->text; ?>


this is line number 241 in mamblog version 1.0. (note that some commenting components edit some mamblog files so look around line 241 if you installed one of these components/plugin etc).

Replace:
Code:
<?php echo $blog->text; ?>


with:

Code:
<?php
         /**
         *  Start Hack to Allow plugins to render in Mamblog
         *   Author: Fiji Web Design, http://www.fijiwebdesign.com
         */
         // plugins class instance
         global $_MAMBOTS;
         // get necessary params for plugins
         $page = 0;
         $params = new mosParameters( $blog->attribs );
         
         //echo nl2br(str_replace(' ', ' ', print_r($blog, 1)));
         
         // process plugins
         $_MAMBOTS->loadBotGroup( 'content' );
         
         $results = $_MAMBOTS->trigger( 'onAfterDisplayTitle', array( &$row, &$params, $page ) );
         echo trim( implode( "\n", $results ) );
         
         $results = $_MAMBOTS->trigger( 'onPrepareContent', array( $blog, $params, $page ), true );
         
         $results = $_MAMBOTS->trigger( 'onBeforeDisplayContent', array( $blog, $params, 0 ) );
         echo trim( implode( "\n", $results ) );
         
         echo $blog->text;
         
         $results = $_MAMBOTS->trigger( 'onAfterDisplayContent', array( $blog, $params, $page ) );
         echo trim( implode( "\n", $results ) );
         
         /**
         *   End Plugin hack
         */
         
         ?>



So your mamblog.html.php file should look like this if you have a fresh install and have hacked it to display plugins/mambots.

Code:
<?php
// $Id$
/**
* Content code
* @package Mamblog
* @Copyright (C) 2004 Olle Johansson
* @ All rights reserved
* @ Mambo Open Source is Free Software
* @ Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
* @version $Revision: 1.0 $
**/

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

class HTML_mamblog {

   function showCommentLink( $id, $count, $link ) {
      global $Itemid;
      echo "<br clear='all' />";
      #echo "<a href=\"" . sefRelToAbs( "index.php?option=$option&Itemid=$Itemid&task=view&id=$id" ) . "\">";
      echo $link;
      echo _BLOG_VIEWADDCOMMENT . "</a> ($count)";
      echo "<br /><br />";
   }

   function showForumLink ( $link ) {
      echo "<br clear='all' />";
      echo $link;
      echo "<br /><br />";
   }

   function blogMessage( $message, $header ) {
      global $my, $option, $Itemid;

      $link = _BLOG_GOTOBLOGS;
      ?>
  <table cellpadding="5" cellspacing="0" border="0" width="100%">
    <tr>
      <td class="contentheading" colspan="2"><?php echo $header; ?></td>
    </tr>
    <tr>
      <td class="contentpane" colspan="2"><?php echo $message . ' <a href="' . sefRelToAbs( "index.php?option=$option&Itemid=$Itemid&task=show&action=user&id={$my->id}" ) . '">' . $link; ?></a></td>
    </tr>
  </table>
<?php
   }

   function editBlog( $id, $blog, $header, $head, $frm, $headattribs, $frmattribs ) {
      global $cfg_mamblog, $Itemid, $my, $option;

      mosMakeHtmlSafe( $blog );

      // Put language constants in an array to use when printing.
      $lang['_TITLE']          = _TITLE;
      $lang['_CONTENT']        = _CONTENT;
      $lang['_BUTTON_MAMBLOG'] = _BUTTON_MAMBLOG;
      $lang['_EXTRAS']         = _EXTRAS;
      $lang['_ATTRIBS']        = _ATTRIBS;
      $lang['_ALLOWCOMMENTS']  = _ALLOWCOMMENTS;
      $lang['_SHOWCOMMENTS']   = _SHOWCOMMENTS;
      $lang['_FRONTPAGE']      = _FRONTPAGE;
      $lang['_ARCHIVED']       = _ARCHIVED;
      $lang['_PUBLISHED']      = _PUBLISHED;
      $lang['_ERROR']          = _ERROR;
      $lang['_BUTTON_DELETE']  = _BLOG_BUTTON_DELETE;
      $lang['_BLOG_CONFIRM_DELETE'] = _BLOG_CONFIRM_DELETE;

      print <<<CONTENT
<script language="javascript" type="text/javascript">
   function submitbutton(pressbutton) {
      var form = document.adminForm;
CONTENT;
// Where editor1 = your areaname and content = the field name
print getEditorContentsJx( 'editor1', 'blogcontent') ;
      print <<<CONTENT
      return true;
   }

   function confirmDelete() {
      var del = window.confirm( '{$lang['_BLOG_CONFIRM_DELETE']}' );
      if (del) {
         document.adminForm.action.value = 'delete';
         document.adminForm.submit();
      }
   }
</script>

<form action="index.php" method="post" name="adminForm" onsubmit="return submitbutton();">
<div class="componentheading">{$header}</div>
<br />
{$lang['_TITLE']}<br />
<input class="inputbox" type="text" name="title" size="30" value="{$blog->title}" /><br />
<br />

{$lang['_CONTENT']}<br />
CONTENT;
   // parameters : areaname, content, hidden field, width, height, rows, cols
   print editorAreaJx( 'editor1',  "$blog->fulltext", 'blogcontent', '50', '20' );
      print <<<CONTENT

CONTENT;
      if ( count( $frm ) ) {
         print <<<CONTENT
        <h4>{$lang['_EXTRAS']}</h4>
        <table border="0" cellspacing="0" cellpadding="5" width="100%">

CONTENT;
      for ( $i = 0; $i < count( $frm ); $i++ ) {
         print ( $i % 2 ) ? '' : "          <tr>\n";
         print <<<CONTENT
            <td width="100">{$head[$i]}</td>
            <td>
            {$frm[$i]}
            </td>

CONTENT;
         print ( $i % 2 ) ? "          </tr>\n" : '';
      }
      print ( $i % 2 ) ? "            <td colspan='2'> </td>\n          </tr>\n" : "";
      print <<<CONTENT
        </table>

CONTENT;
      }

      if ( count( $frmattribs ) ) {
         print <<<CONTENT
        <h4>{$lang['_ATTRIBS']}</h4>
        <table border="0" cellspacing="0" cellpadding="2">
          <tr>
            <td rowspan="6" width="10"></td>
            <td colspan="2"></td>
          </tr>

CONTENT;
         for ( $i = 0; $i < count( $frmattribs ); $i++ ) {
            print <<<CONTENT
          <tr>
            <td>
              {$headattribs[$i]}
            </td>
            <td>
              {$frmattribs[$i]}
            </td>
          </tr>

CONTENT;
         }
         print <<<CONTENT
        </table>

CONTENT;
      }
      print <<<CONTENT

  <br />
  <input class="button" type="submit" name="buttonsubmit" value="{$lang['_BUTTON_MAMBLOG']}" />

CONTENT;

    if ( $id ) {
   print <<<CONTENT
  <input class="button" type="button" name="delete" value="{$lang['_BUTTON_DELETE']}" onclick="confirmDelete();" />

CONTENT;
   }
    print <<<CONTENT
  <input type="hidden" name="option" value="$option" />
  <input type="hidden" name="id" value="$id" />
  <input type="hidden" name="Itemid" value="$Itemid" />
  <input type="hidden" name="catid" value="0" />
  <input type="hidden" name="task" value="edit" />
  <input type="hidden" name="action" value="save" />
</form>

CONTENT;

   }

   function show( $blog, $mask=0, $gid, $option ) {
      global $cfg_mamblog, $Itemid, $my, $mosConfig_live_site;
      $create_date = null;
      if (intval( $blog->created ) <> 0) {
         $create_date = mosFormatDate($blog->created);
      }
      switch (intval($blog->state)) {
         case 0: $state = _BLOG_UNPUBLISHED; break;
         case 1: $state = _BLOG_PUBLISHED; break;
         case -1: $state = _BLOG_ARCHIVED; break;
         default: $state = _BLOG_UNKNOWNSTATE; break;
      }
      $attribs = mosParseParams( $blog->attribs );
      $preset_attribs = mosParseParams( $cfg_mamblog['preset_values']['attribs'] );
      ?>
<?php if ( $cfg_mamblog['useattribs'] ) { ?>
    <table cellpadding="<?php echo isset( $attribs->border ) ? $attribs->border : $preset_attribs->border; ?>" cellspacing="5" border="0" <?php echo isset( $attribs->width ) ? "width='$attribs->width'" : ""; ?> <?php echo isset( $attribs->height ) ? "height='$attribs->height'" : ""; ?> align="left">
       <tr>
       <td valign="top" bgcolor="<?php echo isset( $attribs->bordercolor ) ? $attribs->bordercolor : $preset_attribs->bordercolor; ?>">
<?php } ?>

   <table cellpadding="0" cellspacing="5" border="0" width="100%" class="contentpane"<?php if ( $cfg_mamblog['useattribs'] ) { ?> style="background-color: <?php echo isset( $attribs->bgcolor ) ? $attribs->bgcolor : $preset_attribs->bgcolor; ?>; color: <?php echo isset( $attribs->fgcolor ) ? $attribs->fgcolor : $preset_attribs->fgcolor; ?>; text-align: <?php echo isset( $attribs->textalign ) ? $attribs->textalign : $preset_attribs->textalign; ?>;" height="<?php echo isset( $attribs->height ) ? $attribs->height : $preset_attribs->height; ?>"<?php } ?>>
      <tr class="contentheading">
         <td width="100%">
<?php      if($blog->access <= $gid ) { ?>
            <a href="<?php echo sefRelToAbs( "index.php?option=$option&Itemid=$Itemid&task=show&action=view&id=$blog->id&Itemid=$Itemid" ); ?>"><?php echo $blog->title; ?></a>
<?php      } else { ?>
                <?php echo $blog->title; ?>
<?php      } ?>
    <?php   if ( ( $my->id == $blog->created_by ) && !($mask&MASK_POPUP)) {?>
    <a href="<?php echo sefRelToAbs( "index.php?option=$option&Itemid=$Itemid&task=edit&action=modify&id=$blog->id" ); ?>"><img src="images/M_images/edit.png" width="13" height="14" align="middle" border="0" alt="Edit" /></a>
    <?php   } ?>
            </td>
    <?php   if ($mask&MASK_POPUP) { ?>
    <td><a href="#" onClick="window.print(); return false");"><img src="images/M_images/printButton.png" border='0' alt="print" /></a></td>
    <?php   } else if ($mask&MASK_PRINT) { ?>
    <td align="right"> <a href="#" onClick="window.open('<?php echo $mosConfig_live_site; ?>/index2.php?option=com_content&Itemid=<?php echo $Itemid; ?>&task=view&id=<?php echo $row->id; ?>&pop=1&page=<?php echo $page;?>', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no');">
      <img src="images/M_images/printButton.png" border="0" alt="print" /> </a>
    </td>
    <?php   } ?>
    <?php   if ($mask&MASK_MAIL) { ?>
    <td> <a href="#" onClick="window.open('<?php echo $mosConfig_live_site; ?>/index2.php?option=com_content&Itemid=$Itemid&task=emailform&id=<?php echo $row->id; ?>', 'win2', 'status=no,toolbar=no,scrollbars=no,titlebar=no,menubar=no,resizable=yes,width=400,height=200,directories=no,location=no');">
      <img src="images/M_images/emailButton.png" border='0' alt="E-mail" /> </a>
    </td>
    <?php   } ?>
      </tr>
<?php   if (!($mask&MASK_HIDECREATEDATE)) { ?>
      <tr>
         <td class="createdate" colspan="4" align="left"> (<?php echo $create_date; ?>) <?php echo _WRITTEN_BY; ?> <a href="<?php echo sefRelToAbs( "index.php?option=$option&Itemid=$Itemid&task=show&action=user&id=$blog->created_by" ); ?>"><?php echo $blog->author; ?></a></td>
      </tr>
<?php   } else { ?>
      <tr>
         <td class="createdate" colspan="4" align="left"> <?php echo _WRITTEN_BY; ?> <a href="<?php echo sefRelToAbs( "index.php?option=$option&Itemid=$Itemid&task=show&action=user&id=$blog->created_by" ); ?>"><?php echo $blog->author; ?></a></td>
      </tr>
<?php   } ?>
<?php   if ( ( $my->id == $blog->created_by ) ) { ?>
      <tr>
         <td class="createdate" colspan="4" align="left"><?php echo  _BLOG_STATE . " " . $state; ?></td>
      </tr>
<?php   } ?>
      <tr>
         <td valign="top" colspan="4">
         <?php
         /**
         *  Start Hack to Allow plugins to render in Mamblog
         *   Author: Fiji Web Design, http://www.fijiwebdesign.com
         */
         // plugins class instance
         global $_MAMBOTS;
         // get necessary params for plugins
         $page = 0;
         $params = new mosParameters( $blog->attribs );
         
         //echo nl2br(str_replace(' ', ' ', print_r($blog, 1)));
         
         // process plugins
         $_MAMBOTS->loadBotGroup( 'content' );
         
         $results = $_MAMBOTS->trigger( 'onAfterDisplayTitle', array( &$row, &$params, $page ) );
         echo trim( implode( "\n", $results ) );
         
         $results = $_MAMBOTS->trigger( 'onPrepareContent', array( $blog, $params, $page ), true );
         
         $results = $_MAMBOTS->trigger( 'onBeforeDisplayContent', array( $blog, $params, 0 ) );
         echo trim( implode( "\n", $results ) );
         
         echo $blog->text;
         
         $results = $_MAMBOTS->trigger( 'onAfterDisplayContent', array( $blog, $params, $page ) );
         echo trim( implode( "\n", $results ) );
         
         /**
         *   End Plugin hack
         */
         
         ?>
         
         </td>
      </tr>
<?php   if ($mask&MASK_READON && trim( $blog->fulltext ) ) { ?>
      <tr>
         <td colspan="3" align="left">
<?php      if($blog->access <= $gid ) { ?>
            <a href="<?php echo sefRelToAbs( "index.php?option=$option&Itemid=$Itemid&task=show&action=view&id=$blog->id&Itemid=$Itemid" ); ?>" class="readon"><?php echo _BLOG_READ_ON;?></a>
<?php      } else { ?>
            <a href="<?php echo sefRelToAbs( "index.php?option=com_registration&task=register" ); ?>" class="readon"><?php echo _BLOG_READ_ON_REGISTER;?></a>
<?php      } ?>
         </td>
      </tr>
<?php   } ?>
  <?php   if ($mask&MASK_BACKTOLIST) { ?>
  <tr>
    <td colspan="3" align="center"><a href="javascript:window.history.go(-1);"><?php echo _BACK; ?></a></td>
  </tr>
  <?php   } ?>
   </table>

<?php if ( $cfg_mamblog['useattribs'] ) { ?>
      </td></tr>
   </table>
<?php   } ?>
<?php
   }

   function showLinks( &$rows, $limitstart, $limit ) {
      global $Itemid, $option;
      $n = min( count( $rows ), $limit );
?>
<br clear="all" />
<table cellpadding="0" cellspacing="5" border="0" width="100%" class="contentpaneopen">
  <tr>
    <td> <strong><?php echo _MORE; ?></strong> </td>
  </tr>
  <?php for ($i=$limitstart; $i < $n; $i++) {
?>
  <tr>
    <td> <a class="blogsection" href="<?php echo sefRelToAbs( "index.php?option=$option&task=show&action=view&id={$rows[$i]->id}&Itemid=$Itemid" );?>">
      <?php echo $rows[$i]->title;?></a></td>
  </tr>
  <?php
  }
?>
</table>
<?php
   }
}

?>


Hope that adds some oomph to your mamblog...

Author:  Creator [ Wed Apr 04, 2007 9:03 pm ]
Post subject:  Re: Hack to allow Mambot/Plugin support in Mamblog

Well I tried to get this to work but to no avail. SMF discussbot and Tabs & Slides in content bot are not rendering. :(

Author:  fabs [ Mon Nov 12, 2007 7:53 am ]
Post subject:  Re: Hack to allow Mambot/Plugin support in Mamblog

no luck :( cb author bot hack to show avatar in content does not work :(
any idea?

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/