Перейти к публикации

Рекомендованные сообщения

На данный момент остаются две проблемы с загрузкой на главной шаблонов shortstory для категорий:

1) Не отображаются шаблоны для категорий в листинге новостей. (грузится один дефолтный shortstory для всех категорий)

2) Не отображаются шаблоны для категорий в информации о пользователе. (грузится один дефолтный shortstory для всех категорий)

Ссылка на сообщение
Поделиться на других сайтах

сматри..ты меня удивляешь...не понимаю, что тебе нужно...

проблема с листингом решается путем добавления условия

$cstart > 0
тобишь в short.story.php после:
while($row = $db->get_row($sql_result)){
добавляем:
if ($_SERVER['QUERY_STRING']=="" || $cstart > "0"||$cstart = "1"){$tpl->load_template("".$row['category'].".tpl");} 

else {$tpl->load_template('shortstory.tpl');}

ps: условие $cstart = "1" добавил позже...не знаю почему, но без него не хотело отображать нужный скин на cstart=1...

а зачем чтобы в инфе были разные шаблоны? мы же не глобально к каждой категори привязуем скин, а только для главной (ну и листинг сейчас...)

Изменено пользователем kenpark
Ссылка на сообщение
Поделиться на других сайтах

kenpark, вы меня не правильно понимаете) Я хочу чтобы к каждой категории отображался свой shortstory по всему сайту

Спасибо вам kenpark. Сейчас все работает гладко. Вы очень помогли

Ссылка на сообщение
Поделиться на других сайтах

тю))

тогда все проще даже не придемаешь:)

while($row = $db->get_row($sql_result)){
перед этим добавляем:
$tru_la_la = "yes";
и после этого:
if ($tru_la_la == "yes"){$tpl->load_template("".$row['category'].".tpl");} 

else {$tpl->load_template('shortstory.tpl');}
тобишь получится вот такое:
	$tru_la_la = "yes";

	while($row = $db->get_row($sql_result)){

		if ($tru_la_la == "yes"){$tpl->load_template("".$row['category'].".tpl");} 

else {$tpl->load_template('shortstory.tpl');}

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

зы.дава на ты:) а то мне аж не приятно как-то:) я сомневаюсь, что я старше некоторых:)

Ссылка на сообщение
Поделиться на других сайтах

он не должен был везде...то из-за ошибочного условия...нужно как-то правильно.

ну если те нужно везде, то лучше сделать как в последнем варианте, ну а если что-то конкретное, то нужно экспериментировать:)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Хм... почему не отображаются дополнительные поля, точнее в них инфа не показывается, а просто теги...

пример: [xfgiven_naz] [xfvalue_naz] [/xfgiven_naz]

вот здесь наверно надо править !

else $tpl->load_template('shortstory.tpl');

if (stristr ($tpl->copy_template, "[xfvalue_")) $xfound = true; else $xfound = false;

if ($xfound) $xfields = xfieldsload();

и вот здесь

if ($xfound) {

$xfieldsdata = xfieldsdataload ($row['xfields']);

foreach ($xfields as $value) {

$preg_safe_name = preg_quote($value[0], "'");

if (empty($xfieldsdata[$value[0]])) {

$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template);

} else {

$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "\\1", $tpl->copy_template);

}

$tpl->copy_template = str_replace("[xfvalue_{$preg_safe_name}]", stripslashes($xfieldsdata[$value[0]]), $tpl->copy_template);

}

}

Изменено пользователем domeni
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Спасибо большое domeni, когда менял шаб столкнулся с этой проблемой! Сейчас все работает, ещё раз спасибо! :D

Т.е. Вы хотите сказать, что решили эту проблему ?

Тогда, скажите как !

Ссылка на сообщение
Поделиться на других сайтах

domeni,

условие

		if (stristr ($tpl->copy_template, "[xfvalue_")) $xfound = true; else $xfound = false;


	if ($xfound) $xfields = xfieldsload();
нужно переместить и поставить после
		$tru_la_la = "yes";

	while($row = $db->get_row($sql_result)){

		if ($tru_la_la == "yes"){$tpl->load_template("".$row['category'].".tpl");} 

else {$tpl->load_template('shortstory.tpl');}

Ссылка на сообщение
Поделиться на других сайтах

я просто вставил код

if (stristr ($tpl->copy_template, "[xfvalue_")) $xfound = true; else $xfound = false;


if ($xfound) $xfields = xfieldsload();
после
else $tpl->load_template('shortstory.tpl');
получается что
if (stristr ($tpl->copy_template, "[xfvalue_")) $xfound = true; else $xfound = false;


if ($xfound) $xfields = xfieldsload();

прописан в двух местах

Изменено пользователем Lancee
Ссылка на сообщение
Поделиться на других сайтах

так, а вот и косяки.. вылезли, к примеру у меня одна новость в двух катагориях,

Пример:

гламур [id=2], фото [id=7]соотв, у меня есть шаблон 2.tpl и 7.tpl, так при таком раксладе

   $tru_la_la = "yes";

	while($row = $db->get_row($sql_result)){

		if ($tru_la_la == "yes"){$tpl->load_template("".$row['category'].".tpl");} 

else {$tpl->load_template('shortstory.tpl');}

получается, что у меян должен быть шаблон, вот такой 2,7.tpl

надо подправить !!!

кто подскажет?

Ссылка на сообщение
Поделиться на других сайтах

	$sql_result = $db->query($sql_select);		

		$tru_la_la = "yes";

	while($row = $db->get_row($sql_result)){	

				$categ = substr ($row['category'], 0, 1);

	if ($tru_la_la == "yes"){$tpl->load_template("".$categ.".tpl");} 

else {$tpl->load_template('shortstory.tpl');} 

вот...будет брать меньшее ID...

Ссылка на сообщение
Поделиться на других сайтах

это т.е. если допусти 20 категорий.. должно быть 20 файлов вида: 1.tpl, 2.tpl ... 20.tpl ??

Может кто нибудь сделает поудобнее.. типа модуля.. чтобы если допустим нужно изменить шаблон только 1й категории.. просто добавить шаблон допустим для ID=5 (5.tpl)

или может что то я не так делаю?

у меня прост сайт не загружается, пока не будет всех ID.tpl в папке с шаблоном

PS: почему то такое на localhost'e ..

Инструкция такая?

Файл engine\modules\show.short.php

Находим:

	$sql_result = $db->query($sql_select);


	while($row = $db->get_row($sql_result)){
Заменяем на:
	$sql_result = $db->query($sql_select);		

		$tru_la_la = "yes";

	while($row = $db->get_row($sql_result)){	

				$categ = substr ($row['category'], 0, 1);

	if ($tru_la_la == "yes"){$tpl->load_template("".$categ.".tpl");} 

else {$tpl->load_template('shortstory.tpl');} 

Изменено пользователем Myxa
Ссылка на сообщение
Поделиться на других сайтах

	$sql_result = $db->query($sql_select);		

	while($row = $db->get_row($sql_result)){	


		$categ = substr ($row['category'], 0, 1);

		if ($categ == 1 || $categ == 2){$tpl->load_template("".$categ.".tpl");} 

		else {$tpl->load_template('shortstory.tpl');} 

нужные ID вот здесь нужно указывать "$categ == 1 || $categ == 2"

ну если нужно только одну категорию изменять, то отставляетм только $categ == 1,

если 2, то $categ == 1 || $categ == 2,

если 3, то $categ == 1 || $categ == 2 || $categ == 3

и т.д.

Ссылка на сообщение
Поделиться на других сайтах

	if (strlen($row['category']) >= 2)

		$categ = substr ($row['category'], 0, 2);

	else

		$categ = substr ($row['category'], 0, 1);


		if ($categ == '10' || $categ == '2'){$tpl->load_template("".$categ.".tpl");} 

		else {$tpl->load_template('shortstory.tpl');} 

попробуй так:)

//не..не пробуй) нуна по-другому как-то

Изменено пользователем kenpark
Ссылка на сообщение
Поделиться на других сайтах

мне впринципе нужно только для ID=26

может подскажешь как сделать? хотяб для одной категории..

если сможешь, постучи в аську.. 113151 \ 160501

если получится, дам не большое вознагрождение ;)

Ссылка на сообщение
Поделиться на других сайтах

ребята, так в итоге, как следать если новость в нескольких категориях размещена?

причём, разные нвости в разм кол-ве категорий могут быть размещены !!!

Изменено пользователем domeni
Ссылка на сообщение
Поделиться на других сайтах

есть простой но немного грузанутый для движка вариант

Устанвливаете для сайта шаблон

а для каждой категории ставите другой шаблон с нужными отличиями от первого

и тогда на первой странце хоть что делай !

можно вообще без динамики а тока ссылки на категории оставть

хотя... пробывал так делать но давно было и не помню толи

была какая то с этим проблемка маленькая толи нет :)

пробывал на 5.5 и выше

с удовольствием узнаю ваши рецензии и критику и конечно же решения :)

Ссылка на сообщение
Поделиться на других сайтах

 $koma = strpos($row['category'], ',');

	if ($koma >= 2)

		$categ = substr ($row['category'], 0, 2);

	else

		$categ = substr ($row['category'], 0, 1);


		if ($categ == '1' || $categ == '2'){$tpl->load_template("".$categ.".tpl");} 

		else {$tpl->load_template('shortstory.tpl');}

если нуна, то можно и для трицифрового ID сделать:)

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...