И все таки: Статьи для Shop-Script.

Подскажите, что с рисунками? В админке есть, в юзерской части нет....
 

Вложения

  • art_admin.jpg
    art_admin.jpg
    381,5 KB · Просмотры: 88
  • art_user.jpg
    art_user.jpg
    173,6 KB · Просмотры: 62
Вот решение. Не выводится т.к. для картинки нет места... итак будем его создавать.....:

1) вставь в art.frontend.list.tpl.html после
PHP:
{artshow}
вот этот код

PHP:
{section name=i loop=$art_array}
{if $art_array[i].picture_exists}
	<img src="./products_pictures/{$art_array[i].picture}" hspace="10" align="left" />
{/if}
{/section}

должно быть все ок... пробуй и отпишись!
 
В данном случае, после текста статьи выводятся все картинки из всех статтей.
Тем более в новостях было еще реализовано обтекание картинок.

В новостях, к примеру, все выглядит так же, как и ты предложил, но там все работает отлично.
PHP:
{if $news_posts[i].picture_exists}
	<img src="./products_pictures/{$news_posts[i].picture}" hspace="10" align="left" />
{/if}
Что в статьях не так - не пойму...
 
Вот решение. Сделал еще вчера но нуллед накрылся.... не смог зайти на сайт!

1) в файле article.html если ты его использовал меняем ссылку на выбор нужной статьи с
PHP:
<a href="/index.php?art=yes&id={$art_array[i].NID}">{$art_array[i].title}
на
PHP:
<a href="/index.php?art_id={$art_array[i].NID}">{$art_array[i].title}

2) Файл: index.php
Код: Найти в файле

PHP:
if ( isset($_GET["art"]) || isset($_GET["art"]) )
		$art = 1;

после добавить:

PHP:
if ( isset($_GET["art_id"]) || isset($_GET["art_id"]) )
$art_id = 1;

3) Файл: /includes/art.php
Код: Найти

PHP:
if ( isset($art) ){

		$ArtObj->generatePage('frontend art list');
	}

после добавить:

PHP:
if ( isset($art_id)) {
$ArtObj->generatePage('show particular art');
}

4) Файл: /modules/art/class.artmodule.php
Код: Найти

PHP:
case 'frontend art list':
				
				$xRequestURI = set_query('&msg=');
				$smarty->assign('xRequestURI', $xRequestURI);
				
				$lister = getListerRange($this->CurrentPage, $this->TotalPages);
				$smarty->assign('ListerRange', range($lister['start'], $lister['end']));
				$smarty->assign('CurrentPage', $this->CurrentPage);
				$smarty->assign('TotalPages', $this->TotalPages);
				$smarty->assign('LastPage', $this->TotalPages);
				$smarty->assign('art_posts', xHtmlSpecialChars($this->getArt(), array(), 'title') );
				
				$smarty->assign( 'main_content_template', 'art.frontend.list.tpl.html' );
				break;

после добавить:

PHP:
case 'show particular art':
				$art_id = $_GET['art_id'];
				$art_arr = xHtmlSpecialChars($this->getArt($art_id, 1, 1), array(), 'title');
				$smarty->assign('current_art_id', $art_arr );
				$smarty->assign( 'main_content_template', 'art.frontend.current.id.tpl.html' );
				break;

5) В папке /templates/frontend/папка_вашего_шаблона/ создайте файл art.frontend.current.id.tpl.html со следующим содержанием:

PHP:
{literal}
<style type="text/css">
.artdiv{
	border:0 dashed black;
	border-width: 1 0 0 0;
	margin:3px;
}
.artblock{
	float:left;
	width:100%;
}
</style>
{/literal}
<h1><u>{$smarty.const.ADMIN_ART}</u></h1>

<table cellpadding="4"><tr><td>
{if $current_art_id}
<div class="newsblock">
<h3>{$current_art_id.2}</h3>
<strong>{$current_art_id.1}</strong>
<p>
{if $current_art_id.3}
	<img src="./products_pictures/{$current_art_id.3}" hspace="10" align="left" />
{/if}
{$current_art_id.4}</p>
</div>
</div>
{else}

{$smarty.const.STRING_EMPTY_LIST}

{/if}

</td></tr></table>

должно быть все ок!
 
Все прекрасно работает. Спасибо за детальное объяснение. Все с первого раза.

Еще последний вопросик, как в индексе.пхп прописать статьи, если у меня еще стоят новинки?

PHP:
//novinki
if (!isset($_GET["novinki"])) // 
$smarty->assign("main_content_template", "home.tpl.html");
else
$smarty->assign("main_content_template", "novinki.tpl.html");

    //article
	if (!isset($_GET["article"]))
	$smarty->assign("main_content_template", "home.tpl.html");
	else
$smarty->assign("main_content_template", "article.tpl.html");

Вот Флинт, как-то предлагал, если есть кроме новинок топ-продаж (а он такой же, как и модуль статей) прописать такое:

PHP:
//novinki
if (!isset($_GET["novinki"])) // это проверка на то, установленна переменная или нет
$smarty->assign("main_content_template", "home.tpl.html");
else
$smarty->assign("main_content_template", "novinki.tpl.html");

//top sales
if (!isset($_GET["best_books"])) // это проверка на то, установленна переменная или нет
$smarty->assign("main_content_template", "novinki.tpl.html");
else
$smarty->assign("main_content_template", "название_темплейта_с_топом_продаж.tpl.html");

Видно где-то ошибся... А я не на столько силен в этом, чтобы находить ошибки.
 
не понял вопрос.... а зачем это надо? что б что работало?....

Если я тебя правильно понял то тебе надо сделать ссылку на список статей....??

если да то вот решение:

1) Создай файл article.html во следущим содержанием и скопируй его в /templates/frontend/папка_вашего_шаблона/

PHP:
{* art *}

<table width="160" border="0" align="center" class="voting">

<form action="index.php" name="subscription_form" method=post>
<h1>{$smarty.const.ADMIN_ART}</h1>
	{section name=i loop=$art_array}
	<tr>
		<td>
			<a href="/index.php?art_id={$art_array[i].NID}">{$art_array[i].title}</a> 
			<br><br>
		</td>
	</tr>
	{/section}

</form>

</table>

2) создай файл article.php со следующим содержанием и скопируй его в инклудес

PHP:
<?php
if (isset($_GET["article"])){
$smarty->assign("main_content_template", "article.tpl.html");
}
?>

3) ссылка на список со статьями будет выглядить так:

PHP:
<a href="index.php?article">Статьи</a>
 
Нет, ты не понял.
По инструкции, нужно добавить в index.php

PHP:
//article
	if (!isset($_GET["article"]))
	$smarty->assign("main_content_template", "home.tpl.html");
	else
$smarty->assign("main_content_template", "article.tpl.html");

У меня уже есть

PHP:
	//novinki
if (!isset($_GET["novinki"]))
$smarty->assign("main_content_template", "home.tpl.html");
else
$smarty->assign("main_content_template", "novinki.tpl.html");

Если просто добавить и то и другое, вместо главной - сразу грузятся новинки.
Если сделать, как писал Флинт
PHP:
//article
	if (!isset($_GET["article"]))
	$smarty->assign("main_content_template", "novinki.tpl.html");
	else
$smarty->assign("main_content_template", "article.tpl.html");
... при заходе на новинки, грузит первую (home) страницу.
 
Если просто добавить и то и другое, вместо главной - сразу грузятся новинки.
Если сделать, как писал Флинт
PHP:
//article
    if (!isset($_GET["article"]))
    $smarty->assign("main_content_template", "novinki.tpl.html");
    else
$smarty->assign("main_content_template", "article.tpl.html");
... при заходе на новинки, грузит первую (home) страницу.

попробуй дублировать условие
PHP:
if (!isset($_GET["article"]))  
    $smarty->assign("main_content_template", "home.tpl.html");   
        else   
          $smarty->assign("main_content_template", "article.html");  
 
if (!isset($_GET["novinki"]))  
    $smarty->assign("main_content_template", "home.tpl.html");   
        else   
          $smarty->assign("main_content_template", "novinki.tpl.html");
 
Вот я дибил, я так пробовал, но вместо "article.html" прописывал "article.tpl.html" и исстестна не работало.

Спасибо, все работает ГУТ :)
 
а что за инструкция.... подробнее можно?!!!!
 
Назад
Сверху