Перейти к содержимому


Модуль Статьи


  • Вы не можете ответить в тему
Сообщений в теме: 192

#141 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 25 September 2012 - 03:44 PM

Подскажите пожалуйста, а как можно сделать так, чтобы были и статьи и по такому принципу акции

"акции про принципу статей" - это как? :)

Если нужен еще один набор статей, который будет называться не "статьи", а "акции", то сделайте то же самое, что сделал автор модуля "статьи", когда делал его из штатного модуля "новости" :). Переименуйте в модуле все слова (и файлы) article и articles в action и actions соответственно и получите модуль "Акции" :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#142 idal

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 243 сообщений
Репутация: 7
Начинающий
  • ГородКиев

Отправлено 25 September 2012 - 04:13 PM

Все понял, большое спасибо ща буду делать !!!!
  • 0

#143 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 25 September 2012 - 06:07 PM

Все понял, большое спасибо ща буду делать

Вообще-то я шутил :). Т.е. работать будет, если все нормально переименовать, но сама идея - плодить клоны одного по сути модуля - не особенно красива.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#144 Papikov

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 246 сообщений
Репутация: 66
Продвинутый
  • ГородРостов на Дону

Отправлено 26 September 2012 - 05:52 AM

Написать модуль или переделать существующий.
  • 0

#145 idal

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 243 сообщений
Репутация: 7
Начинающий
  • ГородКиев

Отправлено 26 September 2012 - 11:00 AM

шутники )))
У меня просто надо реализовать такую вещь, Наши магазины по городам (в каждом городе по два), акции, и статьи.можна просто подкатегории статей сделать.
Модуль есть ну цена кусается, может можно как то в самой админке разбить а в шаблоне я уже ручками в меню все впишу.
  • 0

#146 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 26 September 2012 - 11:03 AM

Наши магазины по городам (в каждом городе по два)

Модуль есть ну цена кусается, может можно как то в самой админке разбить а в шаблоне я уже ручками в меню все впишу.

а какая цена устравивает?
  • 0
Изображение Изображение Изображение

#147 idal

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 243 сообщений
Репутация: 7
Начинающий
  • ГородКиев

Отправлено 26 September 2012 - 11:13 AM

ну за 15-20 купил бы
  • 0

#148 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 26 September 2012 - 11:21 AM

ну за 15-20 купил бы

мне кажется Ваша логика построения цены чуть не корректна. Для написания правильного данного модуля с отладкой потребуется примерно 2-3 дня. Итого програмист должен получить 5$ в день от Вашего заказа. Боюсь представить, но у Вас наверно сотрудники в магазинах за еду работают
  • 0
Изображение Изображение Изображение

#149 idal

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 243 сообщений
Репутация: 7
Начинающий
  • ГородКиев

Отправлено 26 September 2012 - 11:32 AM

Так есть уже готовый но цена кусается, я не говорю что надо писать новый.

Боюсь представить, но у Вас наверно сотрудники в магазинах за еду

И не только )))

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

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

я не работаю в этих магазинах мне дали задание сделать сайт, вот я и делаю, взял за основу это движок так как понравился, но стала вот такая проблема вот и думаю как это сделать можно конечно через жопу через статические страницы но это не очень мне нравится
  • 0

#150 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 26 September 2012 - 12:22 PM

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

Как клонировать я уже написал и это не шутка. Шуткой была сама идея, но оно работает. Модуль "Статьи" ровно такой же клон модуля "Новости".

Если хочется более-менее красиво, то в рамках модуля "статьи" добавьте к SQL-таблице этого модуля (articles, вроде) еще одно поле с текстовым названием блока ("Статьи", "Акции", "Документация"...), а в самом блоке (в PHP или даже в TPL.HTML) сравнивайте название текущего блока с этим полем, выводя только совпадающее. При этом в блоке "Статьи" будут только статьи с содержимым этого поля равным слову "Статьи", в блоке "Акции" - со словом "Акции" и та далее. Ну а к ссылке "Все статьи" добавить что-нибудь типа &articles_mode=Статьи, чтобы при показе всех статей (акций, документов) можно было отловить GET['articles_mode'] и по нему понять, какие статьи показывать.

Ну а в админке добавляете один и тот же блок articles.tpl.html несколько раз по разному его обзывая - Статьи, Акции, Документация.

PS. Это лишь один из вариантов, с ходу пришедших в голову. Дальше можно его развивать и улучшать, т.к. придется как-то вводить значение в это новое поле (т.е. надо чуть поправить админку модуля статьи - добавить еще одно поле). Можно сделать выбор этого поля выпадающим списком из имен имеющихся блоков, использующих файл articles.tpl.html. Можно (и это правильно) при выпадающем списке в таблицу вносить не текстовое имя, а какой-нибудь BlockID, чтобы не привязываться к тексту названия блока. Ну и так далее. Но базовая идея проста.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#151 idal

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 243 сообщений
Репутация: 7
Начинающий
  • ГородКиев

Отправлено 26 September 2012 - 12:29 PM

Ок спасибо, ща буду все написанное переваривать )))
  • 0

#152 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 27 September 2012 - 02:04 PM

Ну и так далее. Но базовая идея проста

Вот так выглядит быстренько написанное на коленке. Добавлено три блока articles.tpl.html названные, соответственно, Статьи, Статьи-1 и Статьи-2.
Прикрепленный файл  1.JPG   28.8К   63 Количество загрузок:
А так выглядит админка. Выпадающий список состоит из названий блоков, добавленных из файла atricles.tpl.html
Т.е. задаем в каком блоке какую статью показывать.
Прикрепленный файл  2.JPG   26.41К   58 Количество загрузок:
Прикрепленный файл  3.JPG   19.99К   32 Количество загрузок:
по нажатию "Все статьи" передается еще и /?bid=NN, где NN это bid соответствующего блока. Т.е. используя $_GET['bid'] можно и при показе всех статей показывать только соответствующие тому блоку, где была нажата кнопка.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#153 idal

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 243 сообщений
Репутация: 7
Начинающий
  • ГородКиев

Отправлено 27 September 2012 - 03:17 PM

а можно расписать по шагам, буду очень благодарен
  • 0

#154 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 27 September 2012 - 07:14 PM

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

Можно. С Вас 15-20$ :).

1. в файле articles_function.php

1.1 в function articlesGetArticlesToCustomer

строку

$q = db_query( "select AID, uri, update_date, title, textToPrePublication from ".ARTICLES_TABLE." order by ordering DESC LIMIT 0,".CONF_NEWS_COUNT_IN_CUSTOMER_PART);

заменяем на

$q = db_query( "select AID, uri, update_date, title, textToPrePublication, bid from ".ARTICLES_TABLE." order by ordering, update_date DESC");


1.2. в function articlesGetAllArticles

строку

$q = db_query( "select AID, uri, update_date, title from ".ARTICLES_TABLE." order by update_date DESC" );

заменяем на

$q = db_query( "select AID, uri, update_date, title, bid from ".ARTICLES_TABLE." order by update_date DESC" );


1.3. в function articlesUpdateArticles

строку

function articlesUpdateArticles( $id_articles, $title, $uri, $textToPrePublication, $textToPublication, $metaDescription, $metaKeywords )

заменяем на

function articlesUpdateArticles( $id_articles, $title, $uri, $textToPrePublication, $textToPublication, $metaDescription, $metaKeywords, $bid )


после строки

" uri='".xToText($uri)."', ".

вставляем строку

"bid=".$bid.",".


2. в файле modules_articles.php

2.1. после

die('<font color="green">Первый запуск модуля, инсталляция. Обновите страницу.</font>');
}

вставляем (ниже фигурной скобки, если кто ее не заметил!)

$data = mysql_query("desc ".ARTICLES_TABLE);
while ($row[] = mysql_fetch_assoc($data));
$flag = true;
foreach ($row as $cur_row) if ($cur_row['Field'] == "bid") {$flag=false; break;}
if ($flag) mysql_query("ALTER TABLE ".ARTICLES_TABLE." ADD bid int(11) DEFAULT 0");
$data = db_query("SELECT bid, title FROM ".BLOCKS_TABLE." WHERE url='articles.tpl.html' ORDER BY title");
$blocks[] = array('bid' => 0, 'title' => '- ');
while ($row = db_fetch_assoc($data)) $blocks[] = $row;
$smarty->assign("blockselect",$blocks);


2.2. строку

articlesUpdateArticles($_POST["edit_articles_id"], $_POST["title"], $_POST["uri"], $_POST["textToPrePublication"], $_POST["textToPublication"], $_POST["meta_description"], $_POST["meta_keywords"]);

заменяем на

articlesUpdateArticles($_POST["edit_articles_id"], $_POST["title"], $_POST["uri"], $_POST["textToPrePublication"], $_POST["textToPublication"], $_POST["meta_description"], $_POST["meta_keywords"], $_POST["bid"] );



3. в файле modules_articles.tpl.html

3.1. после

<tr class="lins">
<td align="right">{$smarty.const.ADMIN_ARTICLES_URI}:</td><td><input type=text name='uri' value='{if $edit_articles}{$edit_articles.uri}{else}{$uri}{/if}' style="width: 150px;" class="textp">&nbsp;<a href="JavaScript:art_auto_uri()" style="text-decoration:underline;">[транслит]</a></td>
</tr>

вставляем

<tr class="lins">
<td align="right">BlockName:</td>
<td>
<select name='bid'>
{section name=k loop=$blockselect}
<option value='{$blockselect[k].bid}'{if $blockselect[k].bid EQ $edit_articles.bid} selected {/if}>{$blockselect[k].title}</option>
{/section}
</select>
</td>
</tr>


3.2. после

<td align="left" width="100%">{$smarty.const.ADMIN_ARTICLES_NAMEF}</td>

вставляем

<td align="right">BlockName</td>


3.3. после

<td align="left">{$articles_posts[i].title}</td>

вставляем

<td align="right">
{section name=k loop=$blockselect}
{if $blockselect[k].bid EQ $articles_posts[i].bid}{$blockselect[k].title}{/if}
{/section}
</td>


4. в файле blocks.tpl.html

строку

<td class="{$bclass}" align="{$balign}">{if $binfo[b].html eq 1}{include file="blocks/`$binfo[b].url`" blocknum=$smarty.section.b.index}{else}{$binfo[b].content}{/if}</td>

заменяем на

<td class="{$bclass}" align="{$balign}">{if $binfo[b].html eq 1}{include file="blocks/`$binfo[b].url`" blocknum=$smarty.section.b.index bid=$binfo[b].bid}{else}{$binfo[b].content}{/if}</td>


5. содержимое файла articles.tpl.html заменяем на


{if $articles_array}
<div align="left" class="articles">
{counter assign=flag start=0}
{section name=u loop=$articles_array}
{if $articles_array[u].bid == $bid && $flag < 5}
{if $flag}<br>{/if}
{counter}
<span class="date"><b>{$articles_array[u].update_date}</b></span><br>
<a href="{$smarty.const.ARTICLES_ROOT}/{$articles_array[u].uri}.html"><h2>{$articles_array[u].title}</h2></a>
<div>{$articles_array[u].textToPrePublication}</div>
{/if}
{/section}<br>
{if $flag}<a href="{$smarty.const.ARTICLES_ROOT}/?bid={$bid}"><h2>{$smarty.const.STRING_ARTICLES_INDEX}</h2></a>
{else}<b>no articles</b>{/if}
</div>
{/if}

где $flag < 5 это количество показываемых в блоке (блоках) статей

6. первым делом заходим в админку в Модули/Статьи. Это надо, чтобы в таблице xxxx_articles (она же ARTICLES_TABLE)
создалось поле bid, в котором каждой статье будет прописан идентификатор ее блока либо (изначально) ноль.

7. можно использовать $_GET['bid'] (довесок ?bid={$bid} из предыдущего пункта) в показе всех статей,
чтобы в зависимости от того, в каком блоке нажато "Все статьи" выдавалась та или иная выборка статей.
Я заленился это делать, т.к. банально и не интересно.


PS. Посмотреть можно, как всегда, на cpu.badisoft.ru - блоки "Документация" (слева) и "Статьи" (слева). Туда оно имплантировано строго следуя вышеизложенному описанию.

ак есть уже готовый но цена кусается, я не говорю что надо писать новый.

Вот этой сентенции я вообще не понял.
Если есть готовый, но цена кусается, то к чему дописан хвостик "я не говорю, что надо писать новый"?
Какую смысловую нагрузку несет эта дописка?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#155 idal

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 243 сообщений
Репутация: 7
Начинающий
  • ГородКиев

Отправлено 28 September 2012 - 08:56 AM

Добрый день,
Большое спасибо.
Скинте кошелек в личку.

Изображениеidal сказал:

ак есть уже готовый но цена кусается, я не говорю что надо писать новый.

Вот этой сентенции я вообще не понял.
Если есть готовый, но цена кусается, то к чему дописан хвостик "я не говорю, что надо писать новый"?
Какую смысловую нагрузку несет эта дописка?


Я имел виду что, может как то можно реализовать эту идею без написания модуля.

И вопросик такого плана, как можно сделать так чтобы в раздели статьи можно было создавать подкатегории и эти подкатегории выводились по определенной ссылке.
Например:
Статьи site.ru/stat - все стати
О бизнесе site.ru/stat/biz - статьи раздела бизнес

или это тоже надо писать модуль

Спасибо
  • 0

#156 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 28 September 2012 - 10:31 AM

Скинте кошелек в личку.

Я скидывал уже когда-то. Если ничего не путаю.

И вопросик такого плана, как можно сделать так чтобы в раздели статьи можно было создавать подкатегории и эти подкатегории выводились по определенной ссылке. Например: Статьи site.ru/stat - все стати О бизнесе site.ru/stat/biz - статьи раздела бизнес

Например, путем вышеописанных переделок, только надо будет сделать еще одно:

1.4. в function articlesGetPreArticlesToCustomer($offset=0)

строку

$q = db_query( "select SQL_CALC_FOUND_ROWS AID, uri, update_date, title, textToPrePublication from ".ARTICLES_TABLE." order by ordering DESC LIMIT $offset_,".CONF_NEWS_COUNT_IN_NEWS_PAGE);

заменяем на

$filter = isset($_GET['bid'])?(" WHERE bid=".$_GET['bid']):"";
$q = db_query( "select SQL_CALC_FOUND_ROWS AID, uri, update_date, title, textToPrePublication from ".ARTICLES_TABLE.$filter." order by ordering DESC LIMIT $offset_,".CONF_NEWS_COUNT_IN_NEWS_PAGE);


При таком раскладе по articles/?bid=xx будет выдаваться один набор статей, по articles/?bid=yy другой, а по /articles/ - все статьи.
Осталось только в .htaccess прописать реврайты /articles/abcd в articles/?bid=xx и /articles/cdef в articles/?bid=yy.

Примеры:
cpu.badisoft.ru/articles/
cpu.badisoft.ru/articles/art/
cpu.badisoft.ru/articles/doc/
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#157 idal

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 243 сообщений
Репутация: 7
Начинающий
  • ГородКиев

Отправлено 28 September 2012 - 10:34 AM

Можно сделать по простому создать дополнительную страницу (например о бизнесе,) и присваивать показ блока (с этого модуля) на этой странице.
  • 0

#158 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 28 September 2012 - 01:37 PM

Я создал отдельную тему по этому дополнению, чтобы не засорять тему модуля "Статьи".
http://vsupport.club...__fromsearch__1
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#159 FusSheva

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 210 сообщений
Репутация: 7
Начинающий

Отправлено 02 July 2013 - 07:22 PM

Ребята, а как можно организовать показ определенной информации на странице товара из определенной категории?

К примеру, есть две категории Телефоны и Смартфоны
Как на странице полного описания товара в категории Смартфоны добавить надпись под кнопкой Добавить в корзину - "Под заказ" но чтобы этой надписи не было в категории Телефоны.

Догадываюсь что в шаблоне product_detailed.tpl как то через:
{if}
....
{/if}

Но вот как точно не знаю. Подскажите пожалуйста.
  • 0
Каждый человек способен на многое. Но к сожалению, не каждый знает на что он способен.

#160 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 02 July 2013 - 07:30 PM

Я бы установил модуль разные шаблоны для категорий.
http://vsupport.club...лона-категории/

мало ли что еще понадобится сделать отдельно.
  • 0