Andrey Stolyarov

Андрей Викторович Столяров: сайт автора

Thalassa CMS 0.3.00

Thu Mar 14 23:24:19 2024

Если кто следит на проектом Thalassa CMS — доступна очередная версия под номером 0.3.00. Предыдущую версию (0.2.00) я здесь не анонсировал, поленился, была только новость на сайте Талассы. Подробности про 0.3.00 тоже в основном в новости там, но если кратко — появился предпросмотр комментариев (это ещё вчера можно было заметить на сайтах — на этом и на Infoviolence), есть некоторые изменения в процедуре смены email для зарегистрированного пользователя, ну и ещё там всякие мелочи.

По-видимому, на этом я проект Thalassa CMS поставлю на паузу. Меня Таласса устраивает в том виде, в котором она сейчас есть, ну то есть там, конечно, до чёрта всего ещё такого, что хотелось бы сделать, но прямо сейчас мои сайты вроде бы нормально функционируют, донатов на Талассу поступает мало, так что пора и остальным проектам уделить внимание.


From - (unverified) Tue Apr 30 18:48:21 2024 pencil

Помогите пожалуйста с примером config.ini

Хочу настроить комментарии, но у меня пока не получается сделать даже рабочий бар "no cookie". Можете помочь с config.ini? Ну то есть я не понимаю логику (я читал документацию) нахождения CGI. Что делают CGI я понимаю, просто не понятно как настроить пути так, чтобы они заработали. Что, например, можно написать в конфиге 3 версии Талассы, чтобы оно "ожило из коробки"? Я прописал целевую директорию /var/www/html для генерации этого добра, указал что у меня лежит /usr/local/bin/tahlcgi.cgi (он там действительно лежит) и что указать еще? Ну то есть там еще есть пути, но логика их применения мне пока дается тяжело. При запуске сайта у меня стабильно 403 forbidden и я не понимаю как с этим справится. Вроде как мне говорят про permissions, но я дал вообще все разрешения всем папкам и всему чему можно в директории html рекурсивно, ради эксперимента, но он никак не на что не повлиял. У вас есть примеры того, как должен выглядеть "боевой" config.ini? Я не понимаю зачем нужны в некоторых путях 2 точки (понятное дело это ссылка на предыдущую директорию, но просто зачем, если thalcgi.cgi лежит и в html и в /usr/local/bin-е и где только у меня уже не лежит если честно). Помогите пожалуйста разобраться с путями для запуска интерактивных функций, если вам не трудно...

parent From Andrey V. Stolyarov profile Tue Apr 30 19:52:45 2024 pencil

userpic

Re: Помогите пожалуйста с примером config.ini

403 forbidden — это вряд ли виновата Таласса. Попробуйте кинуть в /var/www/html файл с именем index.html из одной строчки

  <h1>it works</h1>

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

Ну и да, пути в config.ini нужно заполнить все, без этого работать не будет, и не надейтесь :-) Там ведь на каждый из них написано, зачем он и что собой представляет.

Вообще вы эту свеженькую инструкцию видели? Там вроде есть пример, как пути прописывать.

P.S. Ещё раз в моём присутствии назовёте директории "папками" — забаню нахер по ip-адресу.

parent From Andrey V. Stolyarov profile Tue Apr 30 20:25:44 2024 pencil

userpic

про две точки

Гыгыгы, ухитрился упустить вот это ваше

Я не понимаю зачем нужны в некоторых путях 2 точки (понятное дело это ссылка на предыдущую директорию, но просто зачем, если thalcgi.cgi лежит и в html и в /usr/local/bin-е и где только у меня уже не лежит если честно)

Ага, конечно. А как думаете, thalcgi.cgi должна где-то всю свою информацию хранить — ну там активные сеансы с их идентификаторами и прочим барахлом, пользователей с их паролями, правами и всеми делами, вот это вот всё? Для этого нужна отдельная директория, я её обычно завожу рядом с корнем сайта, т.е., например, /var/www/thalcgi_db. В документации она называется session database. Её надо создать и сделать доступной на запись для CGI-программ, т.е. для того пользователя, с правами которого thalcgi.cgi будет выполняться; всё, что там нужно внутри, thalcgi.cgi сделает сама. НО — должна же она хотя бы знать, ГДЕ эта директория? Отсюда параметр userdbdir.

Далее, вот добавил юзер комментарий на страничку, надо эту страничку перегенерить. Для этого, во-первых, надо запустить бинарь самой Талассы (которая thalassa), т.е. thalcgi.cgi должна знать, где эта бинарь лежит. Отсюда параметр thalassa_bin.

А ещё при запуске бинарника Талассы ему надо сказать, из какой директории работать, иначе говоря, где лежат исходники сайта, иначе как он страничку перегенерит. Отсюда параметр sitesrc.

Все эти три пути должны быть прописаны так, как они будут выглядеть с точки зрения самой thalassa.cgi, т.е. если относительные — то начиная с того места, где она сама. В принципе все три пути можно сделать абсолютными, но я бы так не делал, абсолютный путь — это такой специальный способ намертво привязаться к конкретному layout'у и приходить в ужас от мысли что-то куда-то переместить.

Но вот теперь мы выяснили, что будем гонять бинарник Талассы, чтобы перегенерять странички. Но юзеры ведь имеют подлое свойство делать всё именно так, чтобы у нас всё сломалось; поэтому можно быть уверенным, что эти замечательные люди начнут добавлять комментарии на одну и ту же страничку строго одновременно. Если мы разом запустим два экземпляра перегенерации одной и той же странички, ничем хорошим это не кончится. Поэтому приходится как-то взаимоисключаться, и для этого есть spool directory, куда бинарник Талассы, будучи запущен с соответствующими флагами, кладёт, во-первых, блокировочный файлик, и где он же, во-вторых, создаёт файлы "задач" — на самом деле просто ссылок на страницы, которые надо перегенерить.

Короче говоря, Талассе нужно знать, где у неё spool dir (и это единственное, что ей нужно знать из всей thalcgi_db; этот спулер там одна из многих поддиректорий). Вот отсюда параметр spool, обычно это поддиректория _spool внутри той директории, которая session database.

Вот что я точно могу сказать, что это всё никак не влияет на появление 403 forbidden.

From - (unverified) Fri Apr 19 08:49:15 2024 pencil

Перемещение дайджеста новостей

Здравствуйте, Андрей Викторович. Помогите пожалуйста. Использую Талассу, шаблон Смоки. В config.ini лежит digest, который если перевести в режим digest = yes, но при этом что-то написать на главной в этом же самом config.ini - дайджест оказывается внизу. Как его переместить с главной, либо может уменьшить или куда-то аккуратно пристроить, чтобы на главную поместился текст с картинками которые очень там нужны и еще и блок "последние новости"?

parent From Andrey V. Stolyarov profile Fri Apr 19 10:10:59 2024 pencil

userpic

Re: Перемещение дайджеста новостей

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

В данном случае вам нужен файл base/base.ini; в нём есть вот такая секция:

[page index.html]

body = %[html:header:main::^status]
+<div class="pagerest">
+%[opt:mainpage:text]
+%[ifeq:%[opt:mainpage:digest]:yes:
+    <h2>%[opt:feed:name_latest]</h2>
+    %[embedlist:lastnews]
+]
+</div>
+%[html:footer]
+

Это и есть главная страница, точнее, инструкция по её генерации. Собственно дайджест генерируется макровызовом %[embedlist:lastnews], ещё я бы рекомендовал не трогать начало и конец, вот эти вот html:header:main:: и html:footer. Ну и div class="pagerest" — это чтобы страницы выглядели единообразно. Остальное полностью на ваше усмотрение.

From ? (unverified) Sun Mar 24 13:06:05 2024 pencil

Thalassa и "нажатие" на вкладку

Добавил в templ_smoky/db/pages/ свои страницы, затем в mainmenu.ini их указал. Все работает, только при нажатии на главную (я ее не трогал) - кнопка вкладки меняется на белую "типо нажата", а остальные уже такое поведение не воспроизводят. Скажите пожалуйста, как это сделать?

parent From Andrey V. Stolyarov profile Sun Mar 24 14:07:50 2024 pencil

userpic

Re: Thalassa и "нажатие" на вкладку

Это то, для чего нужна четвёртая колонка в конфигурации меню. Там первая — текст, который показывается в меню, вторая — URI, куда пункт меню должен указывать, третья — текст для всплывающей подсказки, а четвёртая — label. Когда макрос, строящий меню, вызывается, ему тоже дают некое значение для label. Если значение совпадает, соответствующий пункт меню становится "как бы текущим".

Конкретно в Smoky всё просто: если у вас файл страницы называется, например, foobar (т.е. сама страница генерится как foobar.html), то в этой четвёртой колонке должно быть указано pages.foobar.

parent From - (unverified) Sun Mar 24 14:59:11 2024 pencil

Сработало! Ура!

А почему в 4 колонке main "выбирается" и без префикса pages, а остальные уже нет?

parent From Andrey V. Stolyarov profile Sun Mar 24 15:11:04 2024 pencil

userpic

Re: Сработало! Ура!

Этот префикс — для страниц из [pageset pages], там в конфигурации этого pageset'а задано, что в качестве метки нужно использовать вот это вот pages.ИМЯ. Точнее говоря, там макрос, строящий меню, вызывается с меткой, построенной вот так.

А главная (index.html) генерится не этим способом, для неё есть [page index.html], и там метка main задана явно. Как раз "с префиксом" на главной это не сработает.

parent From - (unverified) Wed Apr 10 18:49:43 2024 pencil

Вроде как понятно, но...

Оформляю кнопку так же, как и все остальные, но при попытке сделать вкладку новости типа:

 | Новости | /news.html | последние новости | pages.news 

кнопка в статус "активной" не переходит. В чем может быть проблема?

parent From Andrey V. Stolyarov profile Wed Apr 10 22:43:10 2024 pencil

userpic

Re: Вроде как понятно, но...

Если вы используете Smoky, то файл news.html (или blog.html, в зависимости от опций) генерируется как главная страница для [list feed]. Метка для главного меню у неё feed. Чего я вам настоятельно не советую — так это пытаться оверрайднуть её, сделав страницу с таким же именем в pages/ — как видите, не работает, но могло бы сработать, если бы генерация шла в другой последовательности, и возможно, что в других версиях сработает. Если по какой-то причине хочется news.html сгенерить как обычную страницу, исправьте в config.ini строку

  opt_selector:feed = news

на

  opt_selector:feed = blog

(других вариантов нынешняя версия Smoky не предусматривает).

parent From - (unverified) Thu Apr 11 06:34:12 2024 pencil

Круто и просто

Сработало простое изменение pages.news на feed. Спасибо!

parent From Andrey V. Stolyarov profile Thu Apr 11 09:17:07 2024 pencil

userpic

Re: Круто и просто

Так оно же из коробки так. В смысле, прямо в той версии mainmenu.ini, которая в архиве исходников, именно что feed. Нафига меняли? :)

From - (unverified) Wed Mar 20 21:37:19 2024 pencil

Thalassa и favicon.png в templ_smoky

Здравствуйте! При замене картинки logo.png - все четко. При замене favicon.png - ничего не меняется. Файла уже нет, но микроиконка дымкА откуда-то появляется вместо заданного логотипа размером 32x32. Не подскажите как быть?

parent From Andrey V. Stolyarov profile Wed Mar 20 23:35:45 2024 pencil

userpic

Re: Thalassa и favicon.png в templ_smoky

https://stackoverflow.com/questions/48107048/removing-default-favicon (осторожно, там жабоскрипт)

Если коротко — Таласса тут ни при чём, это браузер зачем-то эти favicon'ы кеширует намертво, против них только очистка кеша в приказном порядке помогает.

parent From - (unverified) Fri Mar 22 00:46:38 2024 pencil

Re: Re: Thalassa и favicon.png в templ_smoky

Спасибо огромное за помощь!


pencil

пояснение


Вы находитесь на официальном сайте Андрея Викторовича Столярова, автора учебных пособий по программированию и информационным технологиям.

Если вы искали сайт замечательного писателя-фантаста Андрея Михайловича Столярова, то вам, к сожалению, не сюда.

Андрей Михайлович Столяров в библиотеке Мошкова

Авторские права © Андрей Викт. Столяров, 2009 — 2024