S

Sergey Platonov

пока работаю только с первой веткой движка.
+301
Репутация
3830
Рейтинг
#1 вывод тройного подзапроса в смарти 7 марта 2012 в 02:40
и так как уже не раз писал — переделываю компонент форум — взял за основу от 1.9 и переписываю его (изобретаю велосипед вобщем, но с трёхколёсного детского делаю скоростной горный laugh)
первое что мне не понравилось сразу — это то, что примерно 90% всего кода прописано в файле фронтед в виде php и html кода — а не через смарти для передачи в шаблоны для каждой страницы. именно поэтому у нас у всех одинаковое оформление внешнего вида форума. мы не можем ничего изменить кроме графики.

так вот решил переделывать в первую очередь форум в смарти и столкнулся со следующим.
вот пошли четвёртые сутки, с той невероятной минутки, как я решил переписывать форум для работы со смарти
и так — делаю на локалхосте — поэтому показать не могу — но распишу
структура у нас к примеру такая

  1.  
  2. -категория 1
  3. --форум 1
  4. --форум 2
  5. ---подфорум 1
  6. ---Подфорум 2
  7. -категория 2
  8. --Форум3
  9. ---Подфорум3
  10. ---Подфорум4
  11. --форум4
к примеру вот так — категория это как бы первый уровень, список форумов (именно с этой категории) это второй ну и подфорумы (отображаются в списке форума) это третий. я застрял на втором пока, но думаю если соображу как сделать со вторым, с третьим уровнем проблем не будет
вот привожу код для примера как у меня
во фронтеде
  1.  
  2. $inPage->printHeading($_LANG['FORUMS']);
  3. $inPage->setTitle($_LANG['FORUMS']);
  4. $inPage->addHead('<link rel="alternate" type="application/rss+xml" title="'.$_LANG['FORUMS'].'" href="'.HOST.'/rss/forum/all/feed.rss">');
  5.  
  6. $sql_cat = "SELECT * FROM cms_forum_cats WHERE published = 1 ORDER BY ordering";
  7. $result_cat = $inDB->query($sql_cat) ;
  8. //список категорий форумов в массив
  9. $cat = array();
  10. if ($inDB->num_rows($result_cat)){
  11. $rootid = $inDB->get_field('cms_forums', 'parent_id=0', 'id');
  12. while ($cats = $inDB->fetch_assoc($result_cat)){
  13. // запрос списка форумов данной категории в цикле
  14. $fsql = "SELECT * FROM cms_forums WHERE published = 1 AND category_id = '{$cats['id']}' AND parent_id = '$rootid' ORDER BY ordering";
  15. $fresult = $inDB->query($fsql) ;
  16. if ($inDB->num_rows($fresult)){
  17. //список форумов в массив
  18. $forum = array();
  19. while ($f = $inDB->fetch_assoc($fresult)){
  20. if(!$inCore->checkContentAccess($f['access_list'])) { continue; }
  21. $forum[] = $f;
  22. }
  23. }
  24. $cat[] = $cats;
  25. }
  26. }
  27. $smarty = $inCore->initSmarty('components', 'com_forum_home.tpl');
  28. $smarty->assign('cat', $cat);
  29. $smarty->assign('forum', $forum);
  30.  
  31. $smarty->display('com_forum_home.tpl');
  32.  
и фаил com_forum_home.tpl
  1. <hr><br><hr>
  2. <div class="float_bar"><a href="/forum/latest_posts">{$LANG.LATEST_POSTS}</a> | <a href="/forum/latest_thread">{$LANG.NEW_THREADS}</a></div>
  3. <table class="forums_table" width="100%" cellspacing="0" cellpadding="8" border="0" bordercolor="#999999" >
  4. <tr>
  5. {foreach key=id item=cats from=$cat}
  6. <td colspan="3" width="" class="darkBlue-LightBlue"><a href="/forum/{$cats.seolink}">{$cats.title}</a></td>
  7. <td width="110" class="darkBlue-LightBlue">{$LANG.FORUM_ACT}</td>
  8. <td width="240" class="darkBlue-LightBlue">{$LANG.LAST_POST}</td>
  9. </tr>
  10. {foreach key=id item=forums from=$forum}
  11. <tr>
  12. <td width="32" class="class" align="center" valign="top"><img src="картинка форума" border="0" /></td>
  13. <td width="32" class="class" align="center" valign="top"><img src="тип сообщения" border="0" /></td>
  14. <td width="" class="class" align="left" valign="top">
  15. <div class="forum_link"><a href="/forum/{$forums.id}">{$forums.title}</a></div>
  16. <div class="forum_desc">{$forums.description}</div>
  17. </td>
  18. <td class="class" style="font-size:11px" valign="top">текст</td>
  19. <td style="font-size:11px" class="class" valign="top">текст</td>
  20. </tr>
  21. {/foreach}
  22.  
  23. {/foreach}
  24.  
  25. </table>
  26.  
в итоге вот это у меня выводит все категории, а вот в список форумов во всех категориях выводит список с последней категории. то есть во всех категориях список форумов с последней категории, знаю что надо как то распределить, что если категория такая о — то выводим в список в эту категорию. ну вобщем наверно поняли.

собственно либо подскажите каким макаром это сделать, либо подскажите где про это почитать — в вики тут ничерта нет, в учебнике тоже что то не нашёл именно такого запроса
вот скрин.
у меня должно быть в первой категории Тестовая категория — тестовый форум 1, тестовый форум 2, тестовый форум 3
а в общем форуме так и должно быть (на отсутствие картинок не смотрим) а оно вот так вот
прошу помощи на общее благо (так как не всё, но часть своих наработак по форуму будут в паблике и если удастся договорится с администрацией, то буду просить добавить в релиз)
#1 [ЕСТЬ РЕШЕНИЕ] Нужна помощь с шаблоном 7 марта 2012 в 02:01

проблему за 20 рублей.

Pasha
laughсамая адекватная цена. там реально делов то на пару минут… правда этих денег на пиво уже не хватит

по делу — автор наверно хотел написать, что при больших расширениях шапка сьежает, а не на смартфоне. а то из его сообщения я понял именно так его
#2 +/- к постам форума 7 марта 2012 в 01:51


Можно ли как-то добавить к постам форума такую же функцию оценки (±), как к комментариям?

maia

как уже говорилось — в процессе… третьи сутки (когда есть свободное время) переписываю компонент.
#3 Модуль "Новое в блогах" привязать к конкретному блогу 28 февраля 2012 в 16:39
#4 И снова - компонент форум 28 февраля 2012 в 00:32


Господа, то, во что переросла ветка — это софистика. Важнее решение вопроса с форумом
Sergey Platonov, а что вам мешает сделать платную версию (с тем же торрентом) и продавать его так же, как fuze продает instantVideo? Либо версию для 1,9 сделать публичной, а вот версию для 2,0 сделать платной. К тому времени допилите форум до ума, код подчистите.
P.S. Если форум будет хорош, то не грех и заплатить тыщу-другую за хороший компонент

Олег

давайте сначала доведём до реальности хотя бы часть задумок, а потом уже думать о платности или бесплатности компонента, а так же о включении каких то отдельных функций в офф релиз (если разработчики будут не против, так как нужно не только свой карман набивать, а работать на общество). а то делить шкуру не убитого медведя. я б сказал даже ещё и не родившегося медведя.
к примеру тут не раз поднимался вопрос с иконками форумов. было не раз решение как вручную поменять, мною даже было предложено в блоге решение с добавлением через админку (немного приметив, но работало) в итоге в 1.9 это включено в офф релиз с добавлением через админку, но оно было добавлено учитывая безопасность системы и код самой icms

и ps — что вы так все к 2.0 пристали, по слухам скоро должно выйти 1.9.1 с очень серьёзным дополнением связанным с юзерами, я с нетерпением жду пока его. а так как разработчики взялись за него, то до второй ветки по моему мнению как до луны пешком
#5 последнии сообщения форума - глюк??? или 27 февраля 2012 в 17:27


А вот, к моему сожалению, не понял в чем глюк? В том, что то, что сегодня и вчера пишется время, а в давнем просто дата без времени?

Anabiotick

нет — там на скрине видно и я описал что между вчера в 22.28 и вчера в 20.50 каким то макаром высветилось 16 января (а вчера было явно не 16 января)
по другому можно написать что отображается 26 февраля потом одно сообщение от 16 января потом опять продолжается сообщения от 26 февраля в порядке убывания по времени их написания — так ведь не должно быть
#6 И снова - компонент форум 27 февраля 2012 в 17:12

Sergey Platonov, прозьба незабыть о "шаблонизации", т.к. сейчас почти весь html зашит в ядро форума

AtlantisWeb
я это знаю и учту

Может вместо сотрясания воздуха, дождаться Инстант 2 и там уже смотреть?

letsgo
по поводу сотрясания воздуха вы верно подметили — всё пока что только сотрясается, а вот по поводу 2.0 — во первых как подмечено выше большенство останется на первой ветке и не станет переходить на вторую, многие сидят ещё на 1.6-1.7-1.8, из-за хаков, а вы тут про 2.0 говорите уже. и вообще сначало надо сделать, а потом разводить демагогию
#7 последнии сообщения форума - глюк??? или 27 февраля 2012 в 17:01


Sergey Platonov, зачем раздувать, даже не из мухи — слона ...
Есть для всего тесты системы перед релизом, если мы все хотим, чтобы их не было, значит во время теста, и нужно обо всем сообщать.
Что толку, сейчас то "кричать" используя десятки знаков препинания — ????????? — легче становиться что ли?
Или по каждому поводу патчи выпускать отдельные?

Madmax

извените за прямоту, но вы какой то неадекват в этом плане — я увидил толи глюк, толи баг, и решил о нём тут написать, чтоб администрация была в курсе того, что заметил я и упустила (или просто закрыла на это глаза на такую кажется мелочь), но потом если у кого то возникнет такая же ерунда — опять возникнет вопрос — "у меня вот так — а почему это так?" так вот я описал тут отклонение от нормы в модуле последних сообщений с форума, а так же задал вопрос что это — глюк, баг или простая недоработка которая может быт исправлена добавлением пары строк в код модуля. после того как выяснится что это, можно будет думать стоит ли писать об этом в бактрекер или не стоит чтоб это исправили если это вообще подлежит правке. и да нужно писать заплатки на все дырки — но естественно не выпускать после каждой новый релиз. случай еденичный, но они на мой взгляд все требуют внимания, даже пустяковые

ps — и что вы так пристали к моей пунктуации? три вопросительных знака для вас уже перебор? или три точки которыми я подчёркиваю свою незаконченную мысль? вы учитель русского языка
#8 И снова - компонент форум 27 февраля 2012 в 14:53


На мой взгляд — самые важные для развития форума функции (с позиции пользователя) всего две -

Показать новые сообщения с Вашего последнего визита
Показать новые ответы на Ваши сообщения

Хотелось бы чтобы их тоже не забыли.
(Тоже уже писала, не знаю насколько трудно это реализуемо).

Lana

в моём списке есть эти пункты
#1 последнии сообщения форума - глюк??? или 27 февраля 2012 в 14:46
сегодня пол дня наблюдаю на этом сайте следующую картину в списке последних сообщений форума
идёт сегодня во столько то, сегодня во столько то… и тд. вчера во столько то, вчера во столько то, 16 января, вчера во столько то, вчера во столько то и тд.
после этого сообщения эта строка спустится ещё ниже и в итоге скоро совсем уйдёт. поэтому я сделал скрин, вот он

что это??? баг или просто недоработка модуля??? и вообще из-за чего это???
у меня только две мысли — либо это баг который бы надо устранить (только с чего он взялся) или недоработка — у меня мысль только такая — что кто то в той теме написал какое то сообщение потом удалил его, но запись осталась, хоть и удалённая, в базе висит, а модуль выводит по дате появления последнего сообщения в теме. вот и выводит его так как дата есть но не учитывается что сообщение удалено (это если как раз таки сообщение при удалении удаляется только с сайта а не с базы, но я не знаю пока что как там. как раз этим только начал заниматься в коде форума)
#9 И снова - компонент форум 27 февраля 2012 в 14:12
и снова заезженная тема — на мой век четвёртая в которой я уже отписываюсь.
и так, сессия у меня закончилась, но началась педпрактика, времени немного стало посвободней, но всё же… и как уже мною говорилось, я взялся и сейчас собираю в кучу все наработки по форуму, взял за основу текущюю версию от 1.9(повторюсь от 1.9) и начинаю её переписывать в соответствии с теми темами, что поднимались по функционалу форума.
что мною уже проделано??? отвечу честно: да ничего толком. собрал со всех тредов то, что нужно пользователям, сейчас сижу, курю код и всё остальное, соображаю как прикрутить тот или иной функционал к тому, что есть… отписался в личку человеку, который тоже собирался заняться форумом, может у него уже есть какие доработки, чтоб не делать двойную работу.
ps
из текущего — переделал стандартный модуль вывода последних сообщений форума в удобную мне форму — сегодня? чуть попозже опишу данный хак у себя в блоге. хак то написать написал, он у меня работает, но вот не сделал сразу его описание — теперь сравниваю с оригиналом до обработки
ждите новостей.

по поводу платно\бесплатно даже и не знаю.
ну во первых любой труд должен оплачиваться. и по идее если сделать всё, что я собрал по необходимому функционалу, то компонент можно будет загонять по четырёхзначной цене. конечно желающих будет много, но не все смогут купить. но тут возникает другая дилема, хотелось бы чтоб эти доработки были в офф релизе, тут уже как с администрацией договоримся. но естественно в офф релизе оно должно быть бесплатно, соответственно какой смысл тогда будет продавать??? если оно потом будет бесплатно в офф??? ну что то я разошёлся — уже делю шкуру ещё не убитого медведя.

вобщем я работаю — а там видно будет что и как
#10 Модуль "Я пойду!" (Подтверждение участия в событии) 27 февраля 2012 в 14:11

Sergey Platonov, он как компонент готов в принципе на 100% — просто обрастает новыми функциями и возможностями, которые требуют тестирования и изменений ...

Madmax
вот обрадовали так обрадовали, а по срокам тестирования что нить сказать можете или тайна покрытая мраком???

ps — если компонент требует тестирования, то не лучше ли выкинуть в паблик данный компонент для тестирования компонента народом и выявления всех ошибок и недочётов и прочего??? мне кажется что именно так и делается с версиями инстанты — сначало вета версия или RC которая тестируется всеми, кто в состоянии её протестировать, а потом как только больше никто не может ничего найти она со всеми исправлениями перерастает в релиз… (ну это если компонент будет бесплатным, а если платным, тогда конечно какой смысл выкладывать в паблик)
#11 Чат ajaxim 27 февраля 2012 в 14:04

Sergey Platonov, уже писал я как добавить вкладку с видеочатом, где-то и когда-то ...

Madmax
значит я туплю… признаю.

сессия убивает ©
#12 Чат ajaxim 27 февраля 2012 в 13:35
ну это надо переписывать компонент юзерс — тогда и видеоразговоры можно будет прикрутить и прочие рюшечки
#13 Модуль "Я пойду!" (Подтверждение участия в событии) 27 февраля 2012 в 11:54

Продвигаются ...

Madmax
можно поинтересоваться на сколько процентов готов модуль и когда примерно ждать его релиз — хоть какие то сроки
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.