【问题标题】:Highlight search result in cakephp在 cakephp 中突出显示搜索结果
【发布时间】:2014-07-25 13:02:17
【问题描述】:

正如标题所说,我需要在结果中突出显示搜索的输入字符串,我的意思是如果我查找“ome”,结果应该如下所示:

  1. c ome
  2. s ome
  3. ome
  4. ome之一 等

在文档中搜索我发现我需要激活“文本”帮助程序,并且我应该有类似这样的代码:

echo $this->Text->highlight($string);

尽管我尝试了很多可能性,但我无法让它工作,我知道“文本”助手正在工作,因为这对我在 View/Users/index.ctp 有用:

echo $this->Text->autoLinkEmails(h($user['User']['email']));

如果有帮助,这是我为搜索生成的正常工作的代码:

文件:Model/Oldcaterm.php

public $actsAs = array(
    'Search.Searchable'
);

public $filterArgs =  array(
        'entry' => array(
        'type' => 'like',
        'field' => array('entry', 'lemma_tag')
        ),
        'lemma_tag' => array(
        'type' => 'like',
        'field' => array('entry', 'lemma_tag')
        ),
);

文件:Controller/OldcatermsController.php

public function index() {
        $this->Oldcaterm->recursive = 0;
        $this->Prg->commonProcess();
        $this->Paginator->settings['conditions'] = $this->Oldcaterm->parseCriteria($this->Prg->parsedParams());
        $this->set('terms', $this->Paginator->paginate());
}

文件:查看/Oldcaterms/index.ctp

<?php
        echo $this->Form->create(null,array());
        echo $this->Form->input('entry', array('label' => 'Cerca coincidència'));
        echo $this->Form->end(__('Submit'));
?>

我已经阅读并尝试了许多不同的方法,但我无法使其工作,有人可以指导我一点吗,我在文档中找到了下一个示例:

// called as TextHelper
echo $this->Text->highlight(
 $lastSentence,
 'using',
 array('format' => '<span class="highlight">\1</span>')
);

// called as String
App::uses('String', 'Utility');
echo String::highlight(
 $lastSentence,
 'using',
 array('format' => '<span class="highlight">\1</span>')
);

但我找不到让它适合我的代码的方法

提前致谢。

【问题讨论】:

  • 你最好参考官方文档,而不是一些 4 1/2 年前的博文:book.cakephp.org/2.0/en/core-libraries/helpers/…
  • 对不起,我也读过,但由于我缺乏蛋糕知识(我是新手),我不明白你建议的文档,这就是我寻找替代来源的原因,有什么帮助吗?
  • 那么,你有什么不明白的地方?这只是一个简单的方法调用,传递的第一个参数是内容,第二个是要突出显示的字符串,可选的第三个可用于定义用于突出显示的字符串的 HTML 包装器。它甚至还有一个可以复制和粘贴的示例,真的没有太多要解释的了。如果您对此有任何具体问题,则需要详细说明。
  • 好了,概念我能抓到,但是不知道每个东西放哪里,不知道怎么写合适的代码
  • 对不起,我很久没去了,现在重新处理问题,问题是我找不到将它应用到我的代码的方法,我尝试了很多不同的方法但没有成功,所以我需要的是一些帮助来找到它们所属的东西,谢谢。

标签: php cakephp syntax-highlighting highlight cakephp-2.3


【解决方案1】:

经过一些研究,我意识到 css 样式不存在。右键单击您的浏览器并浏览源代码,如果它显示&lt;span class="highlight"&gt;Your Text Here&lt;/span&gt;,那么一切都恰到好处。只需将以下代码添加到您的 CSS 文件

.highlight{ background-color: #FFDF00; /* <-- Choose what colour you want to use. Here is Golden Yellow */ }

如果还有问题,请在评论中分享

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 2023-03-22
    • 2012-02-16
    • 2023-03-17
    相关资源
    最近更新 更多