0

次のコード (以下) を出力するカスタム Joomla ポートフォリオ コンポーネントがあります。私ができるようにしたいのは、同じページのモジュールで name 変数をエコーすることですが、現在の試みはうまくいきませんでした。これは可能ですか?もしそうなら、どこが間違っていますか?

私のコンポーネントのdefault.php出力...

// no direct access
defined('_JEXEC') or die;

 //Load admin language file
 $lang = JFactory::getLanguage();
 $lang->load('com_portfolio', JPATH_ADMINISTRATOR);

?>
<?php if ($this->item) : ?>

<div class="item_fields">

    <ul class="fields_list">

                    <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_ID'); ?>:
        <?php echo $this->item->id; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_ORDERING'); ?>:
        <?php echo $this->item->ordering; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_STATE'); ?>:
        <?php echo $this->item->state; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_CHECKED_OUT'); ?>:
        <?php echo $this->item->checked_out; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_CHECKED_OUT_TIME'); ?>:
        <?php echo $this->item->checked_out_time; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_CREATED_BY'); ?>:
        <?php echo $this->item->created_by; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_NAME'); ?>:
        <?php echo $this->item->name; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_CUSTOM_CLASS'); ?>:
        <?php echo $this->item->custom_class; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_CATEGORY'); ?>:
        <?php echo $this->item->category_title; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_THUMB'); ?>:
        <?php echo $this->item->thumb; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_IMAGE1'); ?>:
        <?php echo $this->item->image1; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_IMAGE2'); ?>:
        <?php echo $this->item->image2; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_IMAGE3'); ?>:
        <?php echo $this->item->image3; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_IMAGE4'); ?>:
        <?php echo $this->item->image4; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_DESCRIPTION'); ?>:
        <?php echo $this->item->description; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_STATS'); ?>:
        <?php echo $this->item->stats; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_DEMO_LINK'); ?>:
        <?php echo $this->item->demo_link; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_BUY_LINK'); ?>:
        <?php echo $this->item->buy_link; ?></li>
        <li><?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_TAGS'); ?>:
        <?php echo $this->item->tags; ?></li>


    </ul>

</div>

そして、私がやりたいのは、名前変数をモジュールにエコーアウトすることです-これが私が試したことです...

<?php 
defined('_JEXEC') or die('Access Deny');
$lang = JFactory::getLanguage();
$lang->load('com_portfolio');
?>


<?php echo JText::_('COM_PORTFOLIO_FORM_LBL_TEMPLATE_NAME'); ?>:
<?php echo $item->name; ?>

コンポーネントは正常に機能し、モジュールも単純な hello world エコーで機能するため、アイデアがありません。

4

2 に答える 2

0

簡単な回避策を見つけました。セッションを設定するだけです

$session =& JFactory::getSession();
$session->set( 'myVar', $this->item->name ); 

そして、私のモジュールでそれをエコーし​​ました...

<?php echo htmlspecialchars($session->get( 'myVar', 'empty' )); ?>

これが完全に安全で効率的な方法であるかどうかはわかりませんが、少なくとも今のところ機能しています。

于 2013-09-30T14:40:38.337 に答える