Как передать параметр в модуль?

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
lisrenegade
New Member
New Member
Posts: 7
Joined: Sat Sep 18, 2010 12:30 pm

Как передать параметр в модуль?

Post by lisrenegade »

Господа, не могу понять, как передать парметр в модуль.

Например, на странице использую код для вызова модуля:
{positions_small start_from="andrew-martin"}

andrew-martin - это нужно передать в модуль.
------------------
Вот сюда на место ХХХХХ нужно передать "andrew-martin":
$rootnode =& $hm->sureGetNodeByAlias(ХХХХХ);


Как это сделать?

Заранее спасибо.
Fenik17
Power Poster
Power Poster
Posts: 450
Joined: Tue Jun 01, 2010 5:42 am

Re: Как передать параметр в модуль?

Post by Fenik17 »

В какой модуль?
Параметры передаются, к примеру, так:
{cms_module module='album' action='recently_updated' number='15'}
Fenik17
Power Poster
Power Poster
Posts: 450
Joined: Tue Jun 01, 2010 5:42 am

Re: Как передать параметр в модуль?

Post by Fenik17 »

Если же это плагин, то так:
{my_plugin alias='hello'}

В коде плагина:

Code: Select all

function smarty_cms_function_my_plugin($params, &$smarty)
{
	if (isset($params['alias']) {
		global $gCms;
		$manager =& $gCms->GetHierarchyManager();
		$currentNode = &$manager->sureGetNodeByAlias($params['alias']);
		if ($currentNode) {
			// todo
		}
	}
}
lisrenegade
New Member
New Member
Posts: 7
Joined: Sat Sep 18, 2010 12:30 pm

Re: Как передать параметр в модуль?

Post by lisrenegade »

Я пока плохо понимаю все эти структуры, поэтому ниже приведу свой текущий код.

Суть его в том, что сейчас строчкой в самом коде модуля "$pos_small = 'andrew-martin';" я задаю то, что должен задавать при помощи вызывающей строчки в контенте вида "{positions_small start_from="andrew-martin"}"

Вот, если Вас не затруднит, измените мою конструкцию должным образом.
Заранее спасибо.

Code: Select all

<?php

if (!isset($gCms)) exit;

$pos_small = 'andrew-martin';

$hm =& $gCms->GetHierarchyManager();

	$nodelist = array();
	$count = 0;
	$getchildren = true;

	$rootnode = null;

	$prevdepth = 1;
	$showparents = array();
$rootnode =& $hm->sureGetNodeByAlias($pos_small);
	if ($origdepth == 0)
		$origdepth = $prevdepth;
	
	$menuman = $this->GetModuleInstance('MenuManager');
	$menuman->GetChildNodes($rootnode, $nodelist, $gCms, $prevdepth, $count, $params, $origdepth, $showparents, $deep);
$links=array();

foreach($nodelist as $node)
{
	if($node->depth==3) $l3title=$node->pagetitle;
	elseif ($node->depth==4) {
		
		$onenode=$hm->sureGetNodeById($node->id);
		$contentobj =& $onenode->GetContent();
	$props=$contentobj->mProperties->mPropertyNames;
		$avail = null;
		if ( in_array('Наличие',$props)){
			$avail=$contentobj->GetPropertyValue('Наличие');
		}
		if($avail && $avail!='')
		{
			$element=new stdClass();
			$element->id=$node->id;
			$element->title=$node->pagetitle;
			$element->link=$node->url;
			
			$image=$contentobj->GetPropertyValue('Фото-превью');
			if($image && $image!='')
			{
				$element->img=$image;
			}else{
				$element->img='<span style="color:#C2DAB0;">Фотография временно отсутствует</span>';
			}
			$links[$l3title][]=$element;
		}
		
	}
}
	
foreach($links as $name=>$products)
{
	echo '<h3>'.$name.'</h3>';
	$c=ceil(count($products)/3);
	echo '<table border="0" style="text-align:center; width:100%;">';
	for($i=0; $i<$c; $i++)
	{
		echo '<tr>';
		for($j=0; $j<3; $j++)
		{
			$index=$i*3+$j;
			if(isset($products[$index]))
				echo '<td valign="middle" style="background-color: rgb(255, 255, 255); width: 33%; height:200px;"><a href="'.$products[$index]->link.'" style="text-decoration:none;">'.$products[$index]->img.'</a></td>';
			else
				echo '<td valign="middle" style="width: 33%;"> </td>';
		}
		echo '</tr>';
		
		echo '<tr>';
		for($j=0; $j<3; $j++)
		{
			$index=$i*3+$j;
			if(isset($products[$index]))
				echo '<td><a href="'.$products[$index]->link.'">'.$products[$index]->title.'</a></td>';
			else
				echo '<td> </td>';
		}
		echo '</tr>';
		
		echo '<tr>';
		for($j=0; $j<3; $j++)
		{
			$index=$i*3+$j;
			echo '<td> </td>';
		}
		echo '</tr>';
	}
	echo '</table>';
}

?>
Fenik17
Power Poster
Power Poster
Posts: 450
Joined: Tue Jun 01, 2010 5:42 am

Re: Как передать параметр в модуль?

Post by Fenik17 »

$pos_small = $params['start_from'];
lisrenegade
New Member
New Member
Posts: 7
Joined: Sat Sep 18, 2010 12:30 pm

Re: Как передать параметр в модуль?

Post by lisrenegade »

Не помогло. Не работает
Post Reply

Return to “Russian - русский”