教程栏目

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章 页面构造器

第17章 joomla升级

第18章 其他系统迁移

第19章 流量翻倍计划