教程栏目

joomla中文网出品的官方教程

上一节中讲到了自定义表单字段,本节继续。这一节中我们将重点讲解具体的视图操作。

当用户点击按钮的时候,系统会弹出一个模态对话框,这个对话框中的内容是确定是通过如下代码确定的:

index.php?option=com_download&view=items&layout=modal&tmpl=component&function=SelectItem

也 就是说系统会加载com_download组件的items视图的modal布局。并且指定了tmpl=component。这个tmpl很关键,它告诉 系统,不要加载joomla框架了(也就是菜单栏还有一些其他的内容)只是简单的加载组件视图就行了。并且这里还传递了 function=SelectItem这个参数。

看一下视图布局modal.php文件的代码:

<?php

defined('_JEXEC') or die('你不能直接访问这个文件!');
$listOrder = $this->state->get('list.ordering');
$listDirn = $this->state->get('list.direction');
$function = JRequest::getCmd('function','selectItem');

//load tooltip behavior
JHtml::_('behavior.tooltip');

?>

<form action="<?php echo JRoute::_('index.php?option=com_download&view=items&layout=modal&tmpl=component&function='.$function.'&'.JSession::getFormToken().'=1');?>" method="post" name="adminForm" id="adminForm">
  
	<table class="adminlist">
		<tr>
			<?php 
				$id = JHTML::_('grid.sort',JText::_("COM_DOWNLOAD_ITEM_ORDER"),'id',$listDirn,$listOrder);
				$title = JHTML::_('grid.sort',JText::_("COM_DOWNLOAD_ITEM_TITLE"),'title',$listDirn,$listOrder);
				$published = JHTML::_('grid.sort',JText::_("COM_DOWNLOAD_ITEM_PUBLISHED"),'published',$listDirn,$listOrder);
			?>
			<td> <?php echo $id;?> </td>
			<td>
				<?php echo $title;?>
			</td>
			<td> <?php echo $published;?> </td>
		</tr>
		
		<?php
		 $n = 0;
		 foreach ($this->items as $item):
		 
		 $checked = JHTML::_('grid.id',$n,$item->id);
		 //$item->description =  mb_strimwidth($item->description,0,150,'......');
		 $titleLink = JHTML::_('link','index.php?option=com_download&task=item.edit&id='.$item->id,$item->title);
		 $descriptionLink = JHTML::_('link','index.php?option=com_download&task=item.edit&id='.$item->id,$item->description);
		 ?>
		 <tr class="<?php echo "row".$n%2; ?>">
			<td>
				<?php echo $item->id;?>
			</td>
			<td>
				<a class="pointer" onclick="if(window.parent) window.parent.<?php echo $this->escape($function);?>('<?php echo $item->id;?>','<?php echo $item->title;?>','test');">
					<?php echo $item->title;?>
				</a>
			</td>
			<td>
				<?php $published = JHTML::_('grid.published',$item->published, $n ,'tick.png','publish_x.png','items.');?>
				<?php echo $published;?>
			</td>
			
		 </tr>
		 <?php $n++;?>
		 <?php endforeach;?>
	</table>
	
	<div>
			<input type="hidden" name="task" value=""/>
			<input type="hidden" name="option" value=""/>
			<input type="hidden" name="view" value=""/>
			<input type="hidden" name="boxchecked" value="0" />
			<input type="hidden" name="filter_order" value="<?php echo $listOrder;?>" />
			<input type="hidden" name="filter_order_Dir" value="<?php echo $listDirn;?>" />
			<?php echo JHtml::_('form.token');?>
	</div>
	
</form>

	
	

 重点说一下

<td>
<a class="pointer" onclick="if(window.parent) window.parent.<?php echo $this->escape($function);?>('<?php echo $item->id;?>','<?php echo $item->title;?>','test');">
<?php echo $item->title;?>
</a>
</td>

大概的工作就是当用户点击的时候就调用父窗口的selectItem函数。从中我们可以看到如果要在模态对话框中调用父窗口的js代码,需要使用的格式为window.parent.functionname.

到此,整个自定义表单字段算是圆满了。

 

评论 (0)

  • 最新在前
  • 最佳在前

第1章 Joomla入门教程

第3章 C计划

第5章 E计划

第6章 H计划

第7章 G计划

第9章 运行环境

第11章 主从与集群

第12章 模块开发

第13章 插件开发

第14章 j2.x组件开发教程

第15章 页面定制教程

第16章 页面构造器