5

我需要将图像包装到额外的标记中以进行进一步的 css 样式。我想要这样的东西:<p><span><img src="path/to/image" alt="alt"/></span></p>

使用以下模块将图像直接添加到特定节点上:

  1. http://drupal.org/project/insert
  2. http://drupal.org/project/image
  3. http://drupal.org/project/cck -> ImageField

这是我的 node-[type].tpl.php 的内容:

<div id="article">
    <div id="article-header">
        <h2><?php print $title; ?></h2>
        <?php if ($submitted): ?>
            <p class="created"><?php echo date("d. F Y - H:i", $created).t(' von ').$name; ?></p>
        <?php endif; ?>
    </div>

    <div class="article-body">
        <?php print $content; ?>
    </div>

    <?php if ($links): ?>
        <div class="extra-links">
            <?php print $links; ?>
        </div>
    <?php endif; ?>
</div>

<?php if($node->comment == 0 && isset($node->comment_count) && $node->comment_count < 1): ?>
    <div id="comments">
        <p class="note">Kommentare geschlossen</p>
    </div>
<?php endif; ?>

我想我必须做点什么$content。但我真的不知道。有什么建议么?

4

1 回答 1

3

如果您使用的是插入模块,则可以选择在设置中将“附加 CSS 类”添加到图像以在图像字段中插入。

这将添加一个类(但它不会像你想要的那样<img>环绕一个跨度)。<img>使用这个类,你可以做你想要的自定义 css。

这种方法有一些注意事项

  1. 您将需要使用 WYSIWYG 过滤器模块(http://drupal.org/project/wysiwyg_filter)来防止从 img 标签中删除类(或者您将需要使用完整的 html 格式,这显然不是一个好的如果非管理员在网站上输入内容的想法)
  2. 您需要在 WYSIWYG 设置中允许标签的类属性。但是,在高级选项下,请确保您允许允许的类。
  3. 您应该禁用 HTML 过滤器,因为您现在正在使用 WYSIWYG 过滤器

所以你的标签规则看起来像 img[!src|title|alt|class]。确保您想要的类,例如 custom-css-class 在 WYSIWYG 的高级规则部分下列入白名单

编辑:好的,我现在更好地了解您的要求。

  1. 对于非内联的图像字段(即在内容区域中),您可以通过将其重命名为 content-field-[FIELD_NAME].tpl.php 来覆盖 content-field.tpl.php 您可以使用您想要的任何标签包装图像字段文件。请参阅 http://www.advantagelabs.com/drupal-colonoscopy-or-how-theme-cck-field-drupal-6

  2. 对于内联图像并且您仍想添加一些包装 HTML,您可以使用 http://drupal.org/project/customfilter 这是一个很棒的模块(使用起来很棘手,但它有效!!)。您可以搜索标签并在其周围添加任意内容。有关文档,请参见 http://drupal.org/node/210551

于 2010-09-17T16:55:25.513 回答