【问题标题】:Drupal: How to wrap inline images into additional markupDrupal:如何将内联图像包装到附加标记中
【发布时间】:2010-09-17 16:14:07
【问题描述】:

我需要将图像包装到额外的标记中以进行进一步的 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 -> 图像域

这里是我的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 做点什么。但我真的不知道。有什么建议吗?

【问题讨论】:

    标签: drupal drupal-6 drupal-theming


    【解决方案1】:

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

    这将向&lt;img&gt; 添加一个类(但它不会像你想要的那样围绕&lt;img&gt; 包裹一个跨度)。使用这个类,你可以做你想要的自定义 css。

    这种方法有一些注意事项

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

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

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

    1. 对于非内联的图像字段 (即在内容领域)你可以 覆盖 content-field.tpl.php 通过将其重命名为 内容字段-[FIELD_NAME].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 为 文档

    【讨论】:

    • 感谢您的回答,但这不是我需要做的。我可以简单地在我的 css 文件中使用 #article img {} 选择我的图像,并对其进行一些可靠的 css 样式。但我需要额外的标记来解决我的布局问题。您可能应该知道我需要使用多个 css 背景图像。 Css 3 和 Javascript (jQuery) 不是一个选项。
    • 您可以为图像字段覆盖 content-field.tpl.php 并使用自定义过滤器(请参阅上面的编辑答案)
    • NoParrots,自定义过滤器模块是一个很好的建议,但对我来说很复杂 :) 我找到了另一种方法。 drupal.org/project/wysiwyg_imageupload 默认添加自定义 HTML。我出于我的担忧更改了模块,现在它运行良好。再次非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 2013-06-04
    • 2018-07-12
    • 2023-01-23
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    相关资源
    最近更新 更多