Перенос html из php скрипта в шаблон

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Boec
phpBB 1.0.0
Сообщения: 2
Стаж: 17 лет

Перенос html из php скрипта в шаблон

Сообщение Boec »

Всем привет, есть проблема.
Начел сам переписывать релиз-визард для трешки.

Вот код

Код: Выделить всё

<?php
#
# Release wizard for PHPBB Bittorent Tracker (TorrentPier)
# Copyright (c) by pservit
# Support forum: http://www.torrentpier.info/viewtopic.php?t=15
#

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('');


####
# include release-wizard config
$VERSION = '2.0';
include($phpbb_root_path .'release_cfg.php');
####

if ( ! function_exists('array_map_recursive') ) {
	function array_map_recursive($function, $data) 
	{
		foreach ( $data as $i => $item ) {
		        $data[$i] = is_array($item) ? array_map_recursive($function, $item) : $function($item) ;
		}
	        return $data ;
	}
}

if ( get_magic_quotes_gpc() ) {
	$_GET = array_map_recursive('stripslashes', $_GET) ;
	$_POST = array_map_recursive('stripslashes', $_POST) ;
	$_COOKIE = array_map_recursive('stripslashes', $_COOKIE) ;
	$_REQUEST = array_map_recursive('stripslashes', $_REQUEST) ;
}


$user_id = $user->data['user_id'];

$what = isset($_REQUEST['what']) ? $_REQUEST['what'] : '';
$fid = (isset($_REQUEST['fid'])) ? intval($_REQUEST['fid']) : '';
$step = (isset($_REQUEST['step'])) ? intval($_REQUEST['step']) : 0;

$page_title = "Новый релиз";

if($user_id > 0) 
{
	if($what == '')	{
	?>
	
	<table width="100%" cellspacing="2" cellpadding="2" border="0">
	<tr> 
		<td align="left" class="nav"><a href="index.php" class="nav">Список форумов tt.u-l.ru</a></td>
	</tr>
</table>
	<table width="100%" border="0" cellspacing="0" cellpadding="3" class="forumline">
	<tr>
		<th class="thHead" height="14"><b>Общие правила и положения</b></th>
	</tr>
	<tr bgcolor="white">
	<td class="row1">

	    <br/>
	    <ul><span class="post_body"><div style="text-align: center; margin-top: 14px;"><b>Правила оформления раздач на трекере <a href="index.php">tt.u-l.ru</a></b></div><br />

<div style="width: 95%; text-align: left; margin-top: 14px;">

<ul>
<li>
Все создающие раздачу (выкладывающие файл для общедоступного скачивания) обязаны контролировать содержимое этой раздачи по качеству (к примеру, отсутствие звука в фильмах, неснятая защита в программах, неработоспособность программы и т.п.).
</li>
<li>
Данная конференция ведется на русском языке. Для не имеющих возможности писать кириллицей в форум встроена виртуальная русская клавиатура и транслит, кроме того в интернете существует целый ряд <a href="http://www.translit.ru">подобных сервисов</a>. Модераторы и администрация оставляют за собой право редактировать или удалять сообщения, написанные латиницей, без предупреждения.
</li>
<li>
Перед тем, как создавать раздачу, воспользуйтесь <a href="search.php">поиском</a> - возможно такая раздача уже существует.
</li>
<li>Если при оформлении раздачи фильма Вы указываете русское название, оно должно соответствовать названию под которым фильм выходил на территории Российской Федерации. Буквальный перевод оригинального названия не приветствуется. В названии темы должно быть название фильма на русском языке / на английском или на языке оригинала.</li>
<li>В раздаче должен обязательно присутствовать постер (как найти постер <a href="viewtopic.php?t=4674">можно прочитать здесь</a>).</li>
<li>Также Вы должны заполнить все графы в бланке по оформлению раздачи - продолжительность, перевод, страна, год создания фильма, режиссёр, актёры (в ролях), для чего Вы можете воспользоваться авторитетными сайтами о кинематографии, такими как - <a href="http://us.imdb.com">IMdB</a> либо <a href="http://www.videoguide.ru">VideoGuide</a>.</li>
<li>Обязательно должно присутствовать краткое описание того, что Вы выкладываете.</li>
<li>В одной раздаче разрешено выкладывать один фильм, альбом, программу, игру и т.д. Исключением являются: многосерийные фильмы, мультфильмы и сериалы, официальные сборники* и коллекционные издания*, и т.д.</li>
<br /><br />
* Окончательное решение по размещению принимает <font color="red">Модератор</font> или <font color="red">Администратор</font>.
</ul>

</div>

<div style="text-align: center; margin-top: 14px;"><b>Всем участникам раздач на данном трекере запрещается:</b></div><br />

<div style="width: 95%; text-align: left; margin-top: 13px;">

<ul>
<li>Выкладывать торренты с других ресурсов. Для каждой раздачи нужно создавать новый торрент, <b>приватный</b>, и с размером кусков не менее <b>2Мб</b>.</li>
<li>Создавать раздачу, дублирующую то, что уже существует на трекере. Дублирующей считается не отличающаяся ни по содержанию, ни по качеству информация.</li>
<li>Создавать раздачу, содержание которой нарушает общественные нормы морали, различные Базы Данных, отсутствующие в свободном законном доступе и т.п.</li>
<li>Создавать раздачу на общедоступных разделах трекера, которая содержит 18+ (порно, хентай и т.п.).</li>
<li>Выкладывать для общедоступного скачивания более пятиста раздач одновременно или по совокупности (исключение делается для пользователей с очень широким каналом, по личному разрешению Администрации). Пользователи, раздающие больше 500 раздач, будут предупреждаться. Если предупреждения не приведут к должному результату, то часть Ваших раздач будет приостановлена (а возможно, и удалена).</li>
<li>Использовать ссылки на постеры в интернет. Воспользуйтесь <a href="/forum/gallery.php">загрузкой картинок</a>.</li>
<li>В одной раздаче выкладывать несколько фильмов, альбомов разных исполнителей, программ, игр и и.д.
</ul>
<br />
<ul>
<li><b>Если Вы по каким-либо причинам не смогли сделать что-либо из вышеперечисленного - оформлять раздачу напрямую в тематических разделах запрещено, для этого существует <a href="viewforum.php?f=113">Тестовый форум</a>.</b></li>
</ul>
<br />
<ul>
<li>На оформление раздачи отводится 2 часа, если Вы неправильно оформили раздачу, то она переносятся Модераторами в Тестовый форум. Правильно оформленные раздачи, при появлении качающих или скачавших, автоматически блокируются для удаления. В течение 24 часов с момента оформления раздачи, у Вас есть возможность отредактировать текст сообщения, после чего тема полностью блокируется. Возможность редактирования и удаления темы остаётся лишь за Модераторами.</li>
</ul>

</ul>

</div>

<ul>
<div style="width: 95%; text-align: center; margin-top: 14px;">Решение по соответствию раздачи данным требованиям принимает <b><font color="red">Модератор</font></b> или <b><font color="red">Администратор</font></b>. В их полномочиях редактировать, перемещать, закрывать или удалять раздачу.</div>
</ul>

	    </span></ul>
	<br />
	</td>
	</tr>
	</table>
	<table width="100%" border="0" cellspacing="1" cellpadding="3" class="forumline">
	<tr>
		<th class="thHead" height="25"><b>Что будете релизить ?</b></th>
	</tr>
	<tr bgcolor="white">
	<td class="row2">
	    <br/>
	    <ul style="font-size: 14px">
		<?php
		    foreach($config as $code => $cfg ) {
			    $gid = isset($cfg['only_for_group']) ? intval($cfg['only_for_group']) : 0;
			    if( $gid ) {
				    $gdata = "SELECT username, user_id
         FROM ". USERS_TABLE ."";
				    if( !isset($gdata['user_id']) ) continue;
			    }
			    echo('<li><a href="?what='.($code).'">'.($cfg['title']).'</a></li>');
		    }
?>
	    </ul>
	</td>
	</tr>
	</table>
	<br/>
	<small>Release-wizard v.<?php echo($VERSION); ?> for tt.u-l.ru <a href="/forum/profile.php?mode=viewprofile&u=2">Boec</a></small>
	<br/>
	<br/>
<?php
	} else {
		$cfg = $config[$what];
		
		if(!$cfg) {
			message_die(GENERAL_ERROR, 'Can\'t get config for this release type', '', __LINE__, __FILE__);
		} else {
			$cfg['db'] = $db;
			$cfg['url'] = $url;
			$cfg['user_id'] = $user_id;
			
			$allow = 1;
			
			$gid = isset($cfg['only_for_group']) ? intval($cfg['only_for_group']) : 0;
			if( $gid ) {
				$gdata = $db->fetch_row("SELECT user_id FROM " . USER_GROUP_TABLE . " WHERE user_id = $user_id AND group_id = $gid AND user_pending = 0");
				if( !isset($gdata['user_id']) ) $allow = 0;
			}
			
			if($allow) {
				if(!$step || !is_form_valid($cfg)) {
					echo(get_release_form($cfg, $step));
				} else {
					echo(get_phpbb_code_form($cfg));
				}
			} else {
				echo("Hello, world!");
			}
		}
	}
} else {
?>
	<br />
	<table width="100%" border="0" cellspacing="1" cellpadding="3" class="forumline">
	<tr>
		<th class="thHead" height="25"><b>Ошибка</b></th>
	</tr>
	<tr>
		<td class="row1" align="center"><br /><font color="#CC3333">Для создание релиза необходимо войти на сайт под своим именем.</font><br /><br /></td>
	</tr>
	</table>
	<br />
<?php
}


function get_release_form($cfg, $step)
{
	$forum_id = $cfg["forum_id"];
	$title = $cfg["title"];
	$fields = $cfg["fields"];
	$subject_after = $cfg["subject_after"];
	$subject_example = $cfg["subject_example"];
	$what = isset($_REQUEST['what']) ? $_REQUEST['what'] : '';

	$subject = isset($_REQUEST['subject']) ? $_REQUEST["subject"] : '';
	$subject = str_replace("\"", "\\\"", $subject);
	
	if( $subject == "" ) $subject = $subject_after;
	
	$res = $cfg['db']->sql_query("select forum_id, forum_name from " . FORUMS_TABLE . " as u where forum_id=$forum_id ");
        if (!$res) {
	        message_die(GENERAL_ERROR, 'Could not get forums list', '', __LINE__, __FILE__);
	} else {
		$forums = @$cfg['db']->sql_fetchrowset($res);
	}
			
?>
	<style type="text/css">
	.rw_drop_btn, .rw_add_btn {
		width: 24px;
		font-weight: bold;
		color: white;
		background-color: #CC3333;
	}
	
	.rw_add_btn {
		background-color: #33CC33;
	}
	</style>

	<script language="JavaScript" src="release.js"></script>

	
	<form method="post" name="post" enctype="multipart/form-data">
	<input type="hidden" name="step" value="1">
	<input type="hidden" name="what" value="<?php echo($what); ?>">
<table width="100%" border="0" cellspacing="1" cellpadding="3" class="forumline">
<SPAN style="FONT-WEIGHT: bold">
<BR><BR>
	<table width="100%" border="0" cellspacing="1" cellpadding="3" class="forumline">
	<tr>
		<th class="thHead" colspan="2" height="25"><b><?php echo($title); ?></b></th>
	</tr>
	<tr bgcolor="white">
		<td class="row1" align="right" width="15%"><b>Раздел:</b></td>
		<td class="row2">
		<?php
			if( count($forums) == 1 ) {
					echo("<input type=\"hidden\" name=\"f\" value=\"".($forums[0]['forum_id'])."\" />");
					echo("<b>".($forums[0]['forum_name'])."</b>");
			} else {
				echo("<select name=\"f\">\n");
				for($i = 0; $i < count($forums); ++$i) {
					echo("<option value=\"".($forums[$i]['forum_id'])."\">".($forums[$i]['forum_name'])."</option>");
				}
				echo("</select>\n");
	    			echo("<font color=\"#CC3333\"><b>&laquo;-- выберите правильный подфорум !!!</b></font>\n");
			}
			?>
			</select>
		</td>
	</tr>
	<tr bgcolor="white">
		<td class="row1" align="right"><b>Название:</b></td>
		<td class="row2">
			<input type="text" name="subject" size="60" maxlength="120" value="" />
			<?php
			if($subject_after != '') {
				echo("<small> $subject_after</small>");
			}
			if($subject_example != '') {
				echo("<br /><font color=\"gray\"><small>Пример: $subject_example</small></font>");
			}
		?>
		</td>
	</tr>
<?php
	$in_group = false;
	$multiple_group = false;
	$html = '';
	$js = '';
	
	for($i = 0; $i < count($fields); ++$i ) {
		$name       = isset($fields[$i]["name"]) ? $fields[$i]["name"] : '';
		$type       = isset($fields[$i]["type"]) ? $fields[$i]["type"] : '';
		$multiple   = isset($fields[$i]["multiple"]) ? $fields[$i]["multiple"] : 0;
		$default    = isset($fields[$i]["default"]) ? $fields[$i]["default"] : '';
		$example    = isset($fields[$i]["example"]) ? $fields[$i]["example"] : '';
		$values     = isset($fields[$i]["values"]) ? $fields[$i]["values"] : '';
		$comment    = isset($fields[$i]["comment"]) ? $fields[$i]["comment"] : '';
		$value      = ( isset($_REQUEST["f$i"]) && $_REQUEST["f$i"] != '') ? $_REQUEST["f$i"] : $default;
 		$group      = isset($fields[$i]["group"]) ? ($fields[$i]["group"] ? 1 : -1) : '';
 		$size       = isset($fields[$i]["size"]) ? $fields[$i]["size"] : 60;
 		$columns    = isset($fields[$i]["columns"]) ? $fields[$i]["columns"] : 4;
//		$validate   = isset($fields[$i]["validate"]) ? $fields[$i]["validate"] : 0;
		
		$field_name = "f$i";

 		if( $group == 1 ) {
 			$html .= ("<tr bgcolor=\"white\">\n");
 			$html .= ("<td class=\"row1\" align=\"right\">");
			$html .= ("$name:&nbsp;");
			if($comment) $html .= ("<br /><small>".$comment."</small>");
			$html .= ("</td><td class=\"row2\" style=\"font-size: 11px;\">");
 			$html .= ("<table cellpadding=\"0\" cellspacing=\"3\" border=\"0\"><tr>");
			
			for($j = $i + 1; $i < count($fields) && !isset($fields[$j]["group"]); ++$j ) {
				$html .= ("<td><small>");
				$html .= ($fields[$j]["name"]);
				$html .= ("</small></td>");

			}

			if( $multiple ) {
				$multiple_group = true;
				$html .= (" <td>&nbsp;</td>");
			} else {
				$multiple_group = false;
			}
			
			$html .= ("</tr><tr>");
			
 	        	$in_group = true;
 		} else if( $group == -1 ) {
			$key = 'f'.($i - 1);
 			$html .= ("</td>");
			
			if($multiple_group) {
				$html .= ('<td><input class="rw_add_btn" name="insert_'.$key.'" type="button" onclick="mlAddVal(this);" value="+" />&nbsp;<input class="rw_drop_btn" name="drop_'.$key.'" type="button" onclick="mlDropVal(this);" value="-" />');
				$html .= ("<script>ml_vals['$key'] = new Array(); mlCheckForLast('$key');</script>");
				$html .= "</td>";
			}
					
			$html .= "</tr></table>";
 			$html .= ("</td></tr>");
 	        	$in_group = false;
 		} else {
		    	if(!$in_group) {
 				$html .= ("<tr bgcolor=\"white\">");
	 			$html .= ("<td class=\"row1\" align=\"right\">");
		 		$html .= ("<b>$name:</b>&nbsp;");
				if($comment) $html .= ("<br /><small>".$comment."</small>");
				$html .= ("</td>\n\t<td class=\"row2\">\n\t\t");
 			} else {
 				$html .= ("<td>");
				$field_name .= '[]';
			}

			if( $type == "text" ) {
				$value = str_replace("\"", "\\\"", $value);
				$html .= ("<input type=\"text\" name=\"$field_name\" size=\"".($size)."\" value=\"$value\">");
			} if( $type == "variant" ) {
				$value = str_replace("\"", "\\\"", $value);
				$html .= ("<input type=\"text\" name=\"$field_name\" id=\"$field_name\" size=\"60\" value=\"$value\"> <input type=\"button\" onclick=\"showhide('v$field_name')\" value=\"показать/спрятать список\" />");
				if( $values != '' ) {
					$html .= ("<div id=\"v$field_name\" style=\"display: none\"><table class=\"row3\" cellpadding=\"3\" cellspacing=\"0\" border=\"0\">");
					for($j = 0; $j < count($values); ++$j ) {
						$v = $values[$j];
						if($j % $columns == 0) $html .= ("<tr>");
						$html .= ("<td width=\"".intval(100 / $columns)."%\"><input onchange=\"ch_var(this, $i)\" type=\"checkbox\" value=\"$v\" id=\"v$field_name-$j\"><label for=\"v$field_name-$j\">$v<label></td>");
						if($j % $columns == ($columns - 1)) $html .= ("</tr>\n");
					}
					$html .= ("</table></div>");
				}
			} else if( $type == "textarea" ) {
				$html .= ("<textarea rows=\"12\" cols=\"80\" style=\"width: 99%\" name=\"$field_name\">$value</textarea>");
			} else if( $type == "textarea2" ) {
				$html .= ("<textarea rows=\"2\" cols=\"80\" style=\"width: 99%\" name=\"$field_name\">$value</textarea>");
			} else if( $type == "textarea3" ) {
				$html .= ("<textarea rows=\"4\" cols=\"80\" style=\"width: 99%\" name=\"$field_name\">$value</textarea>");
			} else if( $type == "image" ) {
				$html .= ("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">");
		    		$key = $field_name;
				$n = $multiple ? $multiple : 1;
				for($j = 0; $j < $n; ++$j) {
					$html .= ("<tr><td><input type=\"file\" name=\"f".$i."[]\" size=\"70\" />");
					if( $multiple ) {
						$html .= ("</td><td>");
						$html .= ('<input class="rw_add_btn" name="insert_'.$key.'" type="button" onclick="mlAddVal(this);" value="+" />&nbsp;<input class="rw_drop_btn" name="drop_'.$key.'" type="button" onclick="mlDropVal(this);" value="-" />');
						$html .= ("<script>ml_vals['$key'] = new Array( new Array(0, 'input', '') ); mlCheckForLast('$key');</script>");
					}
					$html .= ("</td></tr>");
				}
				$html .= ("</table>");
			} else if( $type == "select" ) {
				$html .= ("<select name=\"$field_name\">");
				$html .= ("<option value=\"0\">--- Выберите ---</option>");
				for($j = 1; $j <= count($values); ++$j) {
					$html .= ("<option value=\"$j\"");
					if($j == $value) { $html .= (" selected=\"selected\""); }
					$html .= (">".$values[$j-1]."</option>");
				}
				$html .= ("</select>");
			}
			
			if($example && !$in_group) {
				$html .= ("<br /><font color=\"gray\"><small>Например, \"$example\"</small></font>");
			}
			
			if(!$in_group) {
				$html .= ("\n\t</td>\n");
				$html .= ("</tr>\n");
			} else {
	     			$html .= ("</td>");
	     		}
		}
	}
	
	echo($html);
	?>
	<tr bgcolor="white">
		<td class="row1" align="right"><b>Торрент</b>:</td>
		<td class="row2">
			<input type="file" name="torrent" size="65"><br>
      Выберите торрент-файл, который будете использовать для релиза
		</td>
	</tr>
	<tr><td class="row2" colspan="2" align="center"><input name="add_attachment" value="Отправить" type="submit" /></td></tr>
	</table>
	
	</form>
	<br />
	<?php
}

function get_phpbb_code_field($config, $field_name, $value, $in_group, $number)
{
	global $cfg;

		$name         = isset($config["name"]) ? $config["name"] : '';
		$type         = isset($config["type"]) ? $config["type"] : '';
		$multiple     = isset($config["multiple"]) ? $config["multiple"] : '';
		$example      = isset($config["example"]) ? $config["example"] : '';
		$values       = isset($config["values"]) ? $config["values"] : '';
		$comment      = isset($config["comment"]) ? $config["comment"] : '';
 		$group        = isset($config["group"]) ? ($config["group"] ? 1 : -1) : '';
		
				
		$before_name  = isset($config["before_name"]) ? $config["before_name"] : 0;
		if( !$before_name ) {
			if($in_group == 1 && $group != 1) {
				if( isset($config["group_before_name"]) ) $before_name = $config["group_before_name"]; else $before_name = "";
			} else {
				$before_name = "[b]";
			}
		}
		$after_name   = isset($config["after_name"]) ? $config["after_name"] : 0;
		if( !$after_name ) {
			if($in_group == 1 && $group != 1) {
				if( isset($config["group_after_name"]) ) $after_name = $config["group_after_name"]; else $after_name = ": ";
			} else {
				$after_name = ": [/b]";
			}
		}
		
		$before_value = isset($config["before_value"]) ? $config["before_value"] : "[br]";
		$after_value  = isset($config["after_value"]) ? $config["after_value"] : ($in_group ? ($group == -1 ? "\n" : "") : "\n");
		
		$right        = isset($config["right"]) ? $config["right"] : 0;
		$hide_name    = isset($config["hide_name"]) ? $config["hide_name"] : 0;
		$as_url       = isset($config["as_url"]) ? $config["as_url"] : 0;
		
		$bbcode = '';
		
		if( $group == 1 ) {
			if(!$hide_name) $bbcode .= ($before_name.($name).($number ? ' #'.$number : '').$after_name);
			$bbcode .= ($before_value);
		} else if( $group == -1 ) {
			$bbcode .= ($after_value);
		} else {
			if( ($type == "text" || $type == 'variant') && $value != '' ) {
				if(!$hide_name) $bbcode .= ($before_name.($name).$after_name);
				$bbcode .= ($before_value.$value.$after_value);
			} else if( $type == "textarea" && $value != '' ) {
				if(!$hide_name) $bbcode .= ($before_name.($name).$after_name);
				$bbcode .= ($before_value.$value.$after_value);
			} else if( $type == "textarea2" && $value != '' ) {
				if(!$hide_name) $bbcode .= ($before_name.($name).$after_name);
				$bbcode .= ($before_value.$value.$after_value);
			} else if( $type == "textarea3" && $value != '' ) {
				if(!$hide_name) $bbcode .= ($before_name.($name).$after_name);
				$bbcode .= ($before_value.$value.$after_value);
			} else if( $type == "select" && $value > 0 ) {
				if(!$hide_name) $bbcode .= ($before_name.($name).$after_name);
				$bbcode .= $before_value.$values[$value - 1].$after_value;
			} else if( $type == "image" ) {
				$img_bbcode = "";
    
        if(!$hide_name) $img_bbcode .= $before_name.($name).$after_name;
      
        $img_bbcode .= $before_value;
      
        $cnt = count($_FILES[$field_name]['name']);
        if(!$multiple && $cnt > 1) $cnt = 1;
        
        $has_images = 0;
      
        for($j = 0; $j < $cnt; ++$j) {
          if(is_uploaded_file($_FILES[$field_name]['tmp_name'][$j])) {
                $im_type = $_FILES[$field_name]['type'][$j];
          
            if($im_type == "image/gif") {
              $ext = "gif";
            } else if($im_type == "image/jpg" || $im_type == "image/jpeg" || $im_type == "image/pjpeg") {
              $ext = "jpg";
            } else if($im_type == "image/png") {
              $ext = "png";
            //torrent posting
            } else if($im_type == "application/x-bittorrent") {
              $ext = "torrent";
            }
            if($ext != "" && $ext != "torrent") {
                  $imageInfo = getimagesize($_FILES[$field_name]['tmp_name'][$j]);
                  $w = $imageInfo[0];
              $h = $imageInfo[1];

              $fname = "picture/".strftime("%y%m%d%H%M%S").$cfg["user_id"].'_'.$field_name.'_'.$j.".$ext";
    
              if( is_callable('imagick_readimage') && $cfg['max_w'] && $cfg['max_h'] ) {
                if($w > $cfg['max_w'] || $h > $cfg['max_h']) {
                      $v = $cfg['max_w'];
                      $h = $cfg['max_h'];
                }
            
                $handle = imagick_readimage($_FILES[$field_name]['tmp_name'][$j]);
                            if ( !imagick_iserror( $handle ) ) {
                              if ( imagick_resize( $handle, $w, $h, IMAGICK_FILTER_UNKNOWN, 0.8 ) ) {
                    if ( !imagick_writeimage( $handle,  $fname ) ) {
                          $fname = "";
                            }
                      }
                }
              } else {
                move_uploaded_file($_FILES[$field_name]['tmp_name'][$j], $fname);
              }
            
              $img_bbcode .= ($as_url?'':'[img'.($right ? '=right' : '').']').($cfg['url'].$fname).($as_url?'':'[/img]')."\n\n";
              $has_images = 1;
            }
          }
        }
        
            $img_bbcode .= $after_value;
  
        if($has_images) $bbcode .= ($img_bbcode);
      }
    }

  return $bbcode;
}
function get_tor_html()
{
			$code = '';
			if($_FILES['torrent']['name']) 
			{
				$six = 'torrent';
				$has_torrent = 0;
				$name  = trim(stripslashes($_FILES[$six]['name']));
				$new_name =str_replace('php','fuck',strftime("%y%m%d%H%M%S").'_'.$name);
				$fsize = $_FILES[$six]["size"];
				$fname = "files/".$new_name;
				move_uploaded_file($_FILES[$six]['tmp_name'], $fname);
				$has_torrent = 1;
			
				$tor_html = 	
				'<input type="hidden" name="add_attachment_body" value="0" />
				<input type="hidden" name="posted_attachments_body" value="0" /><input type="hidden" name="attachment_list[]" value="'.$new_name.'" />
				<input type="hidden" name="filename_list[]" value="'.$name.'" /><input type="hidden" name="extension_list[]" value="torrent" />
				<input type="hidden" name="mimetype_list[]" value="application/x-bittorrent" />
				<input type="hidden" name="filesize_list[]" value="'.$fsize.'" />
				<input type="hidden" name="filetime_list[]" value="'.time().'" />';
	
				$code = ($tor_html);
			}
//		}
	
	return $code;
}
function get_phpbb_code_form($cfg)
{
	$forum_id = $cfg["forum_id"];
	$title = $cfg["title"];
	$fields = $cfg["fields"];

	$subject = isset($_REQUEST['subject']) ? $_REQUEST["subject"] : '';
	$subject = str_replace("\"", """, $subject);

	$f = isset($_REQUEST['f']) ? intval($_REQUEST["f"]) : 0;
	
	$before_value = isset($cfg["before_value"]) ? $cfg["before_value"] : "[font=\"Tahoma\"][size=20][b]";
	$after_value  = isset($cfg["after_value"])  ? $cfg["after_value"] : "[/b][/size][/font]\n\n";
	
	?>
	<div style="height: 1px; overflow: hidden;">
	<form action="posting.php" method="post" name="post">
	<input type="hidden" name="mode" value="newtopic" />
	<input type="hidden" name="f" value="<?php echo($f); ?>" />
	<input type="hidden" name="preview" value="Предв. просмотр" />
	
	<?php echo get_tor_html(); ?>


	<table width="100%" border="0" cellspacing="1" cellpadding="3" class="forumline">
	<tr>
		<th class="thHead" colspan="2" height="25"><b><?php echo($title); ?></b></th>
	</tr>
	<tr bgcolor="white">
		<td class="row1" align="right">Тема:</td>
		<td class="row2"><input type="text" name="subject" size="60" maxlength="120" value="<?php echo($subject); ?>" /></td>
	</tr>

	<tr bgcolor="white">
	<td class="row1" align="right">Сообщение:</td><td class="row2"><textarea name="message" cols="80" rows="15">
	<?php
	echo($before_value.$subject.$after_value);
	
	$in_group = false;
	$multiple_group = false;
	$bbcode = "";

	for($i = 0; $i < count($fields); ++$i) {
		$field_name = "f$i";
		$config = $fields[$i];
		
 		$group    = isset($config["group"]) ? ($config["group"] ? 1 : -1) : '';
		$multiple = isset($config["multiple"]) ? $config["multiple"] : '';
		$default  = isset($config["default"]) ? $config["default"] : '';
		$fields_separator  = isset($config["fields_separator"]) ? $config["fields_separator"] : ', ';

 		if( $group == 1 ) {
			$cnt = 1;
		
			if( $multiple ) {
				$multiple_group = true;
				$cnt = count( $_REQUEST[ 'f'.($i + 1) ] );
			} else {
				$multiple_group = false;
			}
			
			for($k = 0; $k < $cnt; ++$k) {
				$config     = $fields[$i];
				
				$bbcode .= get_phpbb_code_field($config, $field_name, $value, 1, ($cnt > 1 ? ($k + 1) : 0));
				
				for($j = $i + 1; $j < count($fields) && !isset($fields[$j]['group']); ++$j) {
					if( $j != $i + 1 ) $bbcode .= $fields_separator;
					$config     = $fields[$j];
			    		$field_name = "f$j";
					$value      = ( isset($_REQUEST[$field_name][$k]) && $_REQUEST[$field_name][$k] != '') ? $_REQUEST[$field_name][$k] : '';
					$bbcode     .= get_phpbb_code_field($config, $field_name, $value, 1, 0);
				}
				if($k != $cnt - 1) $bbcode .= "\n";
			}
			
			$i = $j-1;
			
 	        	$in_group = true;
 		} else if( $group == -1 ) {
			$bbcode .= get_phpbb_code_field($config, $field_name, $value, 1, 0);
 	        	$in_group = false;
 		} else {
			$value   = ( isset($_REQUEST[$field_name]) && $_REQUEST[$field_name] != '') ? $_REQUEST[$field_name] : $default;
			$bbcode .= get_phpbb_code_field($config, $field_name, $value, 0, 0);
		}
	}
	
	echo($bbcode);
	
?>

	</textarea>
	</td></tr>
	<tr><td class="row2" colspan="2" align="center">
	</td></tr>
	</table>
	</td></tr></table>
	</form>
	</div>
	<?php echo get_tor_html() ?>
	<script>
	document.forms['post'].submit();
	</script>
	<br />
	<?php
}

function is_form_valid($cfg)
{
	return 1;
}

page_header($l_title);

$template->set_filenames(array(
	'body' => 'release.html')
);
page_footer();
?>

Как тут перенести html в шаблон?
Проблема состоит только в этом

Можно показать только пример по переносу.
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 20 лет 8 месяцев
Откуда: Нижний Тагил
Поблагодарили: 11 раз

Re: Перенос html из php скрипта в шаблон

Сообщение Oleg NT »

Дак откройте любой файл, например, viewtopic.php, оттуда можно понять базовые методы работы с шаблонизатором.

Добавлено спустя 3 минуты 39 секунд:
http://code.phpbb.com/svn/phpbb/branche ... templating
Здесь описан синтаксис файлов шаблонов.
По-русски документ можно скачать тут: http://www.phpbbguru.net/community/topic25714.html

Здесь начали описывать работу шаблонизатора на стороне PHP:
Using the phpBB3.0 Template System

Вернуться в «Для авторов (phpBB 3.0.x)»