Вам слово:
Рад, надеюсь на продуктивную встречу! Записаться на семинар можно на сайте NetCat здесь . Обратите внимание, семинар переносится на 29 число!
Finar.
Александр, легко видеть, что, например, биржа ссылок Трастлинк может приносить этому сайту примерно 75$ в месяц. Причем для этого не нужны ни вы, ни ваши журналисты, ни создание фейковых низкокачественных статей с неумело вкрапленной рекламой. Так что за вашим предложением скрывается желание заработать легких денег (75-25=50$ в месяц за просто так) на незнании пользователей и незрелости Рунета в целом. Лучше заниматься в жизни чем-то более основательным, поверьте и попробуйте.
Finar.
Фантастический коммент :) Даже непонятно, как реагировать. Человек хотел найти что-то, нашел, и расстроился, увидел что-то еще, кроме того, что нашел. После чего дал себе труд добраться до обратной связи на другом сайте, чтобы... Чтобы что?
Ну, не готов сайт, бывает. Многое в жизни не идеально, не на все хватает времени, мотивации и сил. Что ж так переживать? Можно помочь, если есть время, мотивация и силы. Можно помочь рублем. Можно написать пожелание, типа "доделайте, пожалуйста, pmwiki.ru, мне очень нужно". Но к чему оставлять подобный комментарий, в чем его конструктивное зерно? Я и так знаю, что не все гладко, и что хорошо было бы для всего мира, если бы мы доделали pmwiki.ru, templates.finar.ru, carmageddonreincarnation.ru, memofilm.ru, www.cc-film.ru , finar.ru и другие проекты, которые мы делаем безвозмездно в свободное от основных жизненных проблем время, которые не приносят никакой прибыли, и делаются только на моем личном энтузиазме за просто так.
Какой смысл жестко критиковать это? Я с этими проектами ничего никому не обещал, так что единственный рациональный путь приблизить их реализацию - мотивировать, а не ругаться.
Finar.
Вы можете посмотреть "исходный код" любой страницы добавив ?action=source, например вот так: http://www.memofilm.ru/?action=source
Логика Мемофильма (и этого сайта тоже), в общем, такая:
- все даты сайта пишутся в формате 2015-05-27:
- $TimeFmt = '%Y-%m-%d, %H:%M'; // преобразуем представление времени на всем сайте к полностью цифровому
- $TimeFmt_day = '%Y-%m-%d'; // dates as "2005-09-08"
- поле файла, в котором хранится дата создания страницы, вынесено в отдельное визуальное поле input, которое можно редактировать вместе с материалом:
- /* =============================================================
- ФУНКЦИОНАЛ ДЛЯ ПОЛЯ ctime (дата создания страницы)
- Вынесено отдельно, так как требуются различные преобразования даты туда-сюда.
- */
- $field = 'ctime';
- $type = 'text';
- $SaveProperties[] = "$field"; // указываем, что надо сохранять поле
- /* если совершается сохранение страницы, в REQUEST приходит значение от формы для этого поля */
- if ($action == 'edit' && $fieldForm = @$_REQUEST["$field-form"]) { // получаем параметр из GET или POST, и если они есть...
- $fieldFormSTRP = "$fieldForm, 00:00"; // эта строчка нужна потому, что на этом хостинге функция не работает без минут... (?)
- $aResult = strptime($fieldFormSTRP, $TimeFmt); // преобразуем из человеческого в Unix-time
- $fieldFormUnix = mktime($aResult['tm_hour'], $aResult['tm_min'], $aResult['tm_sec'], $aResult['tm_mon'] + 1, $aResult['tm_mday'], $aResult['tm_year'] + 1900) . "";
- PZZ(PCache($pagename, $zz=array("$field" => SetProperty($pagename, "$field", PSS($fieldFormUnix))))); // каким-то неведомым образом всовыаем значение в поле
- $fieldValue = $fieldForm; // а также записываем его в переменную для генерации input'ов
- }
- else {
- $fieldValue = $phph_page_2_array["$field"]; // иначе берем для input'ов текущее значение поля из файла
- $fieldValue = strftime($TimeFmt_day, $fieldValue); // преобразование из Unix-time в человеческое
- }
- // генерим поля для формы редактирования материала с именем $имя_поля-form:
- if ($type == 'text'){
- SDVA($InputTags["e_$field"], array(
- ':html' => "<input type='text' \$InputFormArgs placeholder='$field' >",
- 'name' => "$field-form",
- 'class' => "input-$field",
- 'value' => $fieldValue
- ));
- }
- для данного поля создана отдельная Page Variable :
- # задаем новую Page Variable для страниц - дату создания $Created. Для этого содержимое страницы из поля ctime преобразуем к шаблону $TimeFmt_day:
- $FmtPV['$Created'] = "strftime(\$GLOBALS['TimeFmt_day'], \$page['ctime'])";
- теперь фильтрация по годам делается очень просто:
(:pagelist group=Movies fmt=#movies $Created=2015* :)
Концепция еще описана в статье PmWiki как CMS: шаг второй, однако статья устарела, сейчас я вам привел код из нового движка сайта, разработка которого уверенно движется к завершению.
Не стесняйтесь спрашивать, если что-то непонятно - помогу, чем смогу.
Finar.
Пожалуйста, рад помочь! Для решения вашей задачи, необходимо:
- расширить Conditional Markup условием
if numcomp
(см. Conditional Markup Samples - создать pagelist с условием "if" , в котором применить комбинацию из двух
if numcomp
Finar
http://www.memofilm.ru/Site/LocalTemplates
Finar
Да, реализована система категорий с двухуровневой сортировкой. Вкратце это работает так:
- по-умолчанию, PmWiki записывает все ссылки страницы в отдельное поле
targets
. То есть, если в теле страницы сделать ссылку вида[[NewPage.NewPage]]
, то в физическом файле данной страницы появится строчка targets=NewPage.NewPage,NewPage2.NewPage2, и т.д. - так вот этот механизм на memofilm.ru отключен, и вместо него поле targets заполняется вручную, причем целевые ссылки генерируются автоматически из всего содержания сайта. Это проще всего проиллюстрировать скриншотом.
- конечная идея всей конструкции - сайт, сортирующий сам себя по самому себе. То есть любая страница сайта может стать "тегом" для любой другой. Этот концепт будет реализован в новой версии finar.ru
Я нигде не описывал подробно по-русски, как это сделано (в принципе, ничего сложного), но в основе лежит рецепт PageListMultiTargets , а в обсуждении этого рецепта сохранилась полная история того, как я к этому пришел + инструкции по модификации :) Правда все на английском. Дайте знать, если будут нужны дополнительные пояснения.
Finar.
Пожалуйста, всегда рад! Сейчас ответ будет на такой подробный, так как я в путешествии.
С помощью разметки %test%текст%%
можно обернуть "текст" в span с классом test. С помощью CSS для span.test можно задать любые шрифты, см. по запросу "Google Fonts", например.
Finar.
Verano, очень интересное использование PmWiki! К сожалению, никогда не поднимал веб-серверы на Андроиде. Если вы решите эту задачу, буду признателен, если поделитесь опытом + расскажете подробнее о своем сценарии использовании PmWiki.
Finar.
Класс, спасибо за информацию!
От себя могу добавить, что тоже использую синхронизацию между несколькими компьютерами (правда для других целей), но вместо "чужих" облачных технологий вроде яндекс-диска, пользуюсь https://getsync.com/ Через него у меня бесплатно и безопасно напрямую синхронизируется порядка 2 ТБ. данных между компьютерами в разных точках Земли, что очень удобно.
Что касается мобильной верстки PmWiki, то в у меня есть следующий проект:
финальная цель которого - получить дистрибутив русскоязычной версии PmWiki на базе адаптивной верстки Bootstrap с базовым набором наших рецептов, готовый к очень быстрому старту и содержащий основной массив необходимостей (например, фотогалерею).
Finar.