Поле Field с постоянным текстом

Главные вкладки

Аватар пользователя koodry koodry 24 августа 2010 в 8:47

Скажите пожалуйста, есть ли такой модуль поля (field) для cck чтобы я мог создать поле текстовое с постоянным текстом? Например чтобы во всех нодах был один и тот же текст?

Комментарии

Аватар пользователя koodry koodry 24 августа 2010 в 11:33

Отлично Smile Почему то у меня не получается.. Ввожу "значение по умолчанию" любой рандомный текст. И ничего. Поле как было пустое так и осталось... В чем может быть проблема?

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 24 августа 2010 в 11:36

Что значит как было пустое, так и осталось? В форме создания новой ноды или редактирования существующей? Значение по умолчанию работает только для новых нод.

Аватар пользователя vlad.leo vlad.leo 15 ноября 2010 в 0:33

Как я понял пользователю нужно такое поле, чтобы его можно было добавлять в какой -то материал, а потом изменяя в одном месте изменить отображение этого поля автоматически во всех нодах, которые основаны на этом материале. И мне нужно как то это сделать, но ума не приложу как, хотя понимаю, что решение должны быть очень простым.

Аватар пользователя vlad.leo vlad.leo 15 ноября 2010 в 11:54

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

И по возможности расшифруйте, что вы имеет виду под шаблоном. Я хоть с друпалом и много лет общался, но как то с версией 4.7 и являюсь просто опытным пользователям, но вижу жизнь заставляет разбираться в новом. Шаблоны как понятие возникли в 6? Где ими управляют

Аватар пользователя vlad.leo vlad.leo 15 ноября 2010 в 11:54

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

И по возможности расшифруйте, что вы имеет виду под шаблоном. Я хоть с друпалом и много лет общался, но как то с версией 4.7 и являюсь просто опытным пользователям, но вижу жизнь заставляет разбираться в новом. Шаблоны как понятие возникли в 6? Где ими управляют

Аватар пользователя varvashenia varvashenia 16 ноября 2010 в 22:48

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

Аватар пользователя graceman9 graceman9 17 ноября 2010 в 2:10

А если _много_ материалов и значение меняется — кэш долго сбрасывать?

Написать хук в котором добавлять это чудо-поле, а значение брать из спец настройки (которое тоже создать)
Подходит?

CCK поле по логике не подходит..

Аватар пользователя k-s k-s 17 ноября 2010 в 6:34

В поле сохранять неправильно, таблица будет забита одинаковыми значениями, некрасиво
Писать для этого модуль/хук - уже нетривиально

Я забил в шаблон, благо текст у меня этот не между полей из $content находится. А если где-то внутри $content, можно распотрошить этот самый $content, но это опять же уже хлопотно

Напишити кто нить такой модуль Blum 3

Аватар пользователя vlad.leo vlad.leo 17 ноября 2010 в 14:02

1. насчет поля я просто написал как самое близкое по смыслу. ибо есть материал внутри его нужно отображать некий текст, который нужно будет сразу менять во всех нодах основанных на этом материале (типе контента). Очевидно, что само значение не должно хранится в каждой ноде, оно должно хранится в одном месте и подставляться при просмотре ноды с этим типом контента что то типа Token Fields (хотя название не точно отображает суть работы, но что то рядом с этим).

2. этот текст по замыслу будет находится в конце материала.

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

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

5. и все же продолжаю просмотр cck модулей неужели такая нужная возможность до сих пор не реализована.

Аватар пользователя graceman9 graceman9 18 ноября 2010 в 12:36

>Очевидно, что само значение не должно хранится в каждой ноде
+
>5. и все же продолжаю просмотр cck модулей неужели такая нужная возможность до сих пор не реализована.
И всё же Вы продолжаете связывать тему с CCK Wink

зы: возможно модуль будет.

Аватар пользователя vlad.leo vlad.leo 17 ноября 2010 в 15:10

"graceman9" wrote:
И всё же Вы продолжаете связывать тему с CCK ;)

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

А как если не через поля материала, сделать так, чтобы в конце ноды с определенным типом контента, появлялся тот или иной текст (причем даже не просто текст а чистый HTML) и чтобы можно было изменить где то в настройках и при этом везде этот текст менялся бы.

По сути нужно вывести ноду, в конце определенной другой ноды, это если философствовать. Просто может быть кто нибудь может предположить как называется похожая функциональность!

"varvashenia" wrote:
вбить его в tpl.php

этот способ мне как то претит хотя в принципе реализуем видимо не сложно в общем пока в поисках

Аватар пользователя k-s k-s 17 ноября 2010 в 19:56

Копируешь шаблон, добавляешь ему в имя название типа материала и там пишешь что нужно, как будет модуль или еще какая правильная возможность - удаляешь этот шаблон и все. Ну и так как шаблон только для определенного типа данных, не нужно проверять где показывать, а где нет.

Чтобы добавлять шаблоны вида page-CustomContentTypeName.tpl.php нужно еще в template.php пару строчек добавить, а то для page по дефолту он таких имен не понимает.

Что-то типа (D7)

function CustomThemeName_preprocess_page(&$vars, $hook) {
  if (isset($vars['node'])) {  
   $vars['theme_hook_suggestions'][] = 'page_'. str_replace('_', '-', $vars['node']->type);}
}

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

upd Хотя это можно и в node.tpl, там по моему он по умолчанию понимает шаблоны с именами node-CustomContentTypeName.tpl.php

Аватар пользователя varvashenia varvashenia 18 ноября 2010 в 2:53

"vlad.leo" wrote:
По сути нужно вывести ноду, в конце определенной другой ноды, это если философствовать.

Вы описали обычный блок (или даже nodeblock), который вставлен в регион контента.

Аватар пользователя vlad.leo vlad.leo 20 сентября 2013 в 15:43

Согласен с вами я потом дошел до этого сам. Да блок можно показывать где то рядом с контентом, но остался еще для меня вопрос, а как делать одинаковый текст внутри определенного материала, но для меня это не критически важно условно для себя я это назвал static field по аналогии с языками программирования
статические поля (static data members, static class fields, class variables) — поля, общие для всех объектов класса.
Статические поля семантически не отличаются от обычных глобальных переменных, но они доступны только по квалифицированному имени (то есть с указанием имени класса), и поэтому, в отличие от глобальных переменных, не загромождают пространство глобальных имён.

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