本文整理汇总了PHP中qa_shorten_string_line函数的典型用法代码示例。如果您正苦于以下问题:PHP qa_shorten_string_line函数的具体用法?PHP qa_shorten_string_line怎么用?PHP qa_shorten_string_line使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了qa_shorten_string_line函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: q_list
public function q_list($q_list)
{
if (!empty($q_list['qs']) && qa_opt('mouseover_content_on')) {
// first check it is not an empty list and the feature is turned on
// Collect the question ids of all items in the question list (so we can do this in one DB query)
$postids = array();
foreach ($q_list['qs'] as $question) {
if (isset($question['raw']['postid'])) {
$postids[] = $question['raw']['postid'];
}
}
if (!empty($postids)) {
// Retrieve the content for these questions from the database
$maxlength = qa_opt('mouseover_content_max_len');
$result = qa_db_query_sub('SELECT postid, content, format FROM ^posts WHERE postid IN (#)', $postids);
$postinfo = qa_db_read_all_assoc($result, 'postid');
// Get the regular expression fragment to use for blocked words and the maximum length of content to show
$blockwordspreg = qa_get_block_words_preg();
// Now add the popup to the title for each question
foreach ($q_list['qs'] as $index => $question) {
if (isset($postinfo[$question['raw']['postid']])) {
$thispost = $postinfo[$question['raw']['postid']];
$text = qa_viewer_text($thispost['content'], $thispost['format'], array('blockwordspreg' => $blockwordspreg));
$text = preg_replace('/\\s+/', ' ', $text);
// Remove duplicated blanks, new line characters, tabs, etc
$text = qa_shorten_string_line($text, $maxlength);
$title = isset($question['title']) ? $question['title'] : '';
$q_list['qs'][$index]['title'] = $this->getHtmlTitle(qa_html($text), $title);
}
}
}
}
parent::q_list($q_list);
// call back through to the default function
}
示例2: q_list
public function q_list($q_list)
{
if (!empty($q_list['qs']) && qa_opt('mouseover_content_on')) {
// first check it is not an empty list and the feature is turned on
// Collect the question ids of all items in the question list (so we can do this in one DB query)
$postids = array();
foreach ($q_list['qs'] as $question) {
if (isset($question['raw']['postid'])) {
$postids[] = $question['raw']['postid'];
}
}
if (!empty($postids)) {
// Retrieve the content for these questions from the database and put into an array fetching
// the minimal amount of characters needed to determine the string should be shortened or not
$maxlength = qa_opt('mouseover_content_max_len');
$result = qa_db_query_sub('SELECT postid, LEFT(content, #) content, format FROM ^posts WHERE postid IN (#)', $maxlength + 1, $postids);
$postinfo = qa_db_read_all_assoc($result, 'postid');
// Get the regular expression fragment to use for blocked words and the maximum length of content to show
$blockwordspreg = qa_get_block_words_preg();
// Now add the popup to the title for each question
foreach ($q_list['qs'] as $index => $question) {
if (isset($postinfo[$question['raw']['postid']])) {
$thispost = $postinfo[$question['raw']['postid']];
$text = qa_viewer_text($thispost['content'], $thispost['format'], array('blockwordspreg' => $blockwordspreg));
$text = qa_shorten_string_line($text, $maxlength);
$title = isset($question['title']) ? $question['title'] : '';
$q_list['qs'][$index]['title'] = sprintf('<span title="%s">%s</span>', qa_html($text), $title);
}
}
}
}
qa_html_theme_base::q_list($q_list);
// call back through to the default function
}
示例3: q_list
function q_list($q_list)
{
if (count(@$q_list['qs']) && qa_opt('mouseover_content_on')) {
// first check it is not an empty list and the feature is turned on
// Collect the question ids of all items in the question list (so we can do this in one DB query)
$postids = array();
foreach ($q_list['qs'] as $question) {
if (isset($question['raw']['postid'])) {
$postids[] = $question['raw']['postid'];
}
}
if (count($postids)) {
// Retrieve the content for these questions from the database and put into an array
$result = qa_db_query_sub('SELECT postid, content, format FROM ^posts WHERE postid IN (#)', $postids);
$postinfo = qa_db_read_all_assoc($result, 'postid');
// Get the regular expression fragment to use for blocked words and the maximum length of content to show
$blockwordspreg = qa_get_block_words_preg();
$maxlength = qa_opt('mouseover_content_max_len');
// Now add the popup to the title for each question
foreach ($q_list['qs'] as $index => $question) {
$thispost = @$postinfo[$question['raw']['postid']];
if (isset($thispost)) {
$text = qa_viewer_text($thispost['content'], $thispost['format'], array('blockwordspreg' => $blockwordspreg));
$text = qa_shorten_string_line($text, $maxlength);
$q_list['qs'][$index]['title'] = '<SPAN TITLE="' . qa_html($text) . '">' . @$question['title'] . '</SPAN>';
}
}
}
}
qa_html_theme_base::q_list($q_list);
// call back through to the default function
}
示例4: test__qa_shorten_string_line
public function test__qa_shorten_string_line()
{
// qa_shorten_string_line ($string, $length)
$test = qa_shorten_string_line($this->strBasic, 30);
$this->assertStringStartsWith('So I tied', $test);
$this->assertStringEndsWith('time.', $test);
$this->assertNotFalse(strpos($test, '...'));
}
示例5: qa_page_q_edit_a_form
function qa_page_q_edit_a_form(&$qa_content, $id, $answer, $question, $answers, $commentsfollows, $in, $errors)
{
require_once QA_INCLUDE_DIR . 'qa-util-string.php';
$answerid = $answer['postid'];
$prefix = 'a' . $answerid . '_';
$content = isset($in['content']) ? $in['content'] : $answer['content'];
$format = isset($in['format']) ? $in['format'] : $answer['format'];
$editorname = isset($in['editor']) ? $in['editor'] : qa_opt('editor_for_as');
$editor = qa_load_editor($content, $format, $editorname);
$hascomments = false;
foreach ($commentsfollows as $commentfollow) {
if ($commentfollow['parentid'] == $answerid) {
$hascomments = true;
}
}
$form = array('tags' => 'method="post" action="' . qa_self_html() . '"', 'id' => $id, 'title' => qa_lang_html('question/edit_a_title'), 'style' => 'tall', 'fields' => array('content' => array_merge(qa_editor_load_field($editor, $qa_content, $content, $format, $prefix . 'content', 12), array('error' => qa_html(@$errors['content'])))), 'buttons' => array('save' => array('tags' => 'onclick="qa_show_waiting_after(this, false); ' . (method_exists($editor, 'update_script') ? $editor->update_script($prefix . 'content') : '') . '"', 'label' => qa_lang_html('main/save_button')), 'cancel' => array('tags' => 'name="docancel"', 'label' => qa_lang_html('main/cancel_button'))), 'hidden' => array($prefix . 'editor' => qa_html($editorname), $prefix . 'dosave' => '1', $prefix . 'code' => qa_get_form_security_code('edit-' . $answerid)));
// Show option to convert this answer to a comment, if appropriate
$commentonoptions = array();
$lastbeforeid = $question['postid'];
// used to find last post created before this answer - this is default given
$lastbeforetime = $question['created'];
if ($question['commentable']) {
$commentonoptions[$question['postid']] = qa_lang_html('question/comment_on_q') . qa_html(qa_shorten_string_line($question['title'], 80));
}
foreach ($answers as $otheranswer) {
if ($otheranswer['postid'] != $answerid && $otheranswer['created'] < $answer['created'] && $otheranswer['commentable'] && !$otheranswer['hidden']) {
$commentonoptions[$otheranswer['postid']] = qa_lang_html('question/comment_on_a') . qa_html(qa_shorten_string_line(qa_viewer_text($otheranswer['content'], $otheranswer['format']), 80));
if ($otheranswer['created'] > $lastbeforetime) {
$lastbeforeid = $otheranswer['postid'];
$lastebeforetime = $otheranswer['created'];
}
}
}
if (count($commentonoptions)) {
$form['fields']['tocomment'] = array('tags' => 'name="' . $prefix . 'dotoc" id="' . $prefix . 'dotoc"', 'label' => '<span id="' . $prefix . 'toshown">' . qa_lang_html('question/a_convert_to_c_on') . '</span>' . '<span id="' . $prefix . 'tohidden" style="display:none;">' . qa_lang_html('question/a_convert_to_c') . '</span>', 'type' => 'checkbox', 'tight' => true);
$form['fields']['commenton'] = array('tags' => 'name="' . $prefix . 'commenton"', 'id' => $prefix . 'commenton', 'type' => 'select', 'note' => qa_lang_html($hascomments ? 'question/a_convert_warn_cs' : 'question/a_convert_warn'), 'options' => $commentonoptions, 'value' => @$commentonoptions[$lastbeforeid]);
qa_set_display_rules($qa_content, array($prefix . 'commenton' => $prefix . 'dotoc', $prefix . 'toshown' => $prefix . 'dotoc', $prefix . 'tohidden' => '!' . $prefix . 'dotoc'));
}
// Show name and notification field if appropriate
if ($answer['isbyuser']) {
if (!qa_is_logged_in()) {
qa_set_up_name_field($qa_content, $form['fields'], isset($in['name']) ? $in['name'] : @$answer['name'], $prefix);
}
qa_set_up_notify_fields($qa_content, $form['fields'], 'A', qa_get_logged_in_email(), isset($in['notify']) ? $in['notify'] : !empty($answer['notify']), isset($in['email']) ? $in['email'] : @$answer['notify'], @$errors['email'], $prefix);
}
if (!qa_user_post_permit_error('permit_edit_silent', $answer)) {
$form['fields']['silent'] = array('type' => 'checkbox', 'label' => qa_lang_html('question/save_silent_label'), 'tags' => 'name="' . $prefix . 'silent"', 'value' => qa_html(@$in['silent']));
}
return $form;
}
示例6: qa_sort_by
}
if ($question['hidden']) {
$qa_content['hidden'] = true;
}
qa_sort_by($commentsfollows, 'created');
// Prepare content for the question...
if ($formtype == 'q_edit') {
// ...in edit mode
$qa_content['title'] = qa_lang_html($question['editable'] ? 'question/edit_q_title' : (qa_using_categories() ? 'question/recat_q_title' : 'question/retag_q_title'));
$qa_content['form_q_edit'] = qa_page_q_edit_q_form($qa_content, $question, @$qin, @$qerrors, $completetags, $categories);
$qa_content['q_view']['raw'] = $question;
} else {
// ...in view mode
$qa_content['q_view'] = qa_page_q_question_view($question, $parentquestion, $closepost, $usershtml, $formrequested);
$qa_content['title'] = $qa_content['q_view']['title'];
$qa_content['description'] = qa_html(qa_shorten_string_line(qa_viewer_text($question['content'], $question['format']), 150));
$categorykeyword = @$categories[$question['categoryid']]['title'];
$qa_content['keywords'] = qa_html(implode(',', array_merge(qa_using_categories() && strlen($categorykeyword) ? array($categorykeyword) : array(), qa_tagstring_to_tags($question['tags']))));
// as far as I know, META keywords have zero effect on search rankings or listings, but many people have asked for this
}
$microdata = qa_opt('use_microdata');
if ($microdata) {
$qa_content['head_lines'][] = '<meta itemprop="name" content="' . qa_html($qa_content['q_view']['raw']['title']) . '">';
$qa_content['html_tags'] = ' itemscope itemtype="http://schema.org/QAPage"';
$qa_content['main_tags'] = ' itemscope itemtype="http://schema.org/Question"';
}
// Prepare content for an answer being edited (if any) or to be added
if ($formtype == 'a_edit') {
$qa_content['a_form'] = qa_page_q_edit_a_form($qa_content, 'a' . $formpostid, $answers[$formpostid], $question, $answers, $commentsfollows, @$aeditin[$formpostid], @$aediterrors[$formpostid]);
$qa_content['a_form']['c_list'] = qa_page_q_comment_follow_list($question, $answers[$formpostid], $commentsfollows, true, $usershtml, $formrequested, $formpostid);
$jumptoanchor = 'a' . $formpostid;
示例7: q_list
function q_list($q_list)
{
if (qa_opt('it_layout_lists') == 'qlist') {
qa_html_theme_base::q_list($q_list);
return;
}
if (count(@$q_list['qs'])) {
// first check it is not an empty list and the feature is turned on
// Collect the question ids of all items in the question list (so we can do this in one DB query)
$postids = array();
foreach ($q_list['qs'] as $question) {
if (isset($question['raw']['postid'])) {
$postids[] = $question['raw']['postid'];
}
}
if (count($postids)) {
// Retrieve favourite count
$userid = qa_get_logged_in_userid();
$result = qa_db_query_sub('SELECT userid,entityid FROM ^userfavorites WHERE entitytype=$ AND entityid IN (#)', 'Q', $postids);
while ($row = mysqli_fetch_row($result)) {
if ($row[0] == $userid) {
// loged in user favorited this post
$faved_post[$row[1]] = 1;
}
if (isset($favs[$row[1]])) {
$favs[$row[1]] = $favs[$row[1]] + 1;
} else {
$favs[$row[1]] = 1;
}
}
// Retrieve comment count
$result = qa_db_query_sub('SELECT postid,parentid FROM ^posts WHERE type=$ AND parentid IN (#)', 'C', $postids);
$comment_list = qa_db_read_all_assoc($result, 'postid');
foreach ($comment_list as $key => $value) {
if (isset($comments[$value['parentid']])) {
$comments[$value['parentid']] = $comments[$value['parentid']] + 1;
} else {
$comments[$value['parentid']] = 1;
}
}
if (qa_opt('it_excerpt_field_enable') or qa_opt('it_enable_except')) {
// Get the regular expression fragment to use for blocked words and the maximum length of content to show
$blockwordspreg = qa_get_block_words_preg();
if (qa_opt('it_excerpt_field_enable')) {
$maxlength = qa_opt('it_excerpt_field_length');
// Retrieve Excerpt Text for all questions
$result = qa_db_query_sub('SELECT postid,content FROM ^postmetas WHERE postid IN (#) AND title=$', $postids, 'et_excerpt_text');
$excerpt_text = qa_db_read_all_assoc($result, 'postid');
// set excerpt from field info
foreach ($q_list['qs'] as $index => $question) {
// from field
if (!empty($excerpt_text[$question['raw']['postid']]['content'])) {
$text = qa_viewer_text($excerpt_text[$question['raw']['postid']]['content'], '', array('blockwordspreg' => $blockwordspreg));
$text = qa_shorten_string_line($text, $maxlength);
$q_list['qs'][$index]['excerpt'] = qa_html($text);
// from post content
} elseif (qa_opt('it_enable_except')) {
// Retrieve the content for these questions from the database and put into an array
$result = qa_db_query_sub('SELECT postid, content, format FROM ^posts WHERE postid IN (#)', $postids);
$postinfo = qa_db_read_all_assoc($result, 'postid');
$thispost = @$postinfo[$question['raw']['postid']];
if (isset($thispost)) {
$text = qa_viewer_text($thispost['content'], $thispost['format'], array('blockwordspreg' => $blockwordspreg));
$text = qa_shorten_string_line($text, $maxlength);
$q_list['qs'][$index]['excerpt'] = qa_html($text);
}
}
}
} else {
// qa_opt('it_enable_except') ==> excerpt from question content instead of excerpt field
$maxlength = qa_opt('it_except_len');
$result = qa_db_query_sub('SELECT postid, content, format FROM ^posts WHERE postid IN (#)', $postids);
$postinfo = qa_db_read_all_assoc($result, 'postid');
foreach ($q_list['qs'] as $index => $question) {
$thispost = @$postinfo[$question['raw']['postid']];
if (isset($thispost)) {
$text = qa_viewer_text($thispost['content'], $thispost['format'], array('blockwordspreg' => $blockwordspreg));
$text = qa_shorten_string_line($text, $maxlength);
$q_list['qs'][$index]['excerpt'] = qa_html($text);
}
}
}
}
// Retrieve featured images for all list questions
if (qa_opt('it_feature_img_enable')) {
$result = qa_db_query_sub('SELECT postid,content FROM ^postmetas WHERE postid IN (#) AND title=$', $postids, 'et_featured_image');
$featured_images = qa_db_read_all_assoc($result, 'postid');
}
// Now meta information for each question
foreach ($q_list['qs'] as $index => $question) {
if (qa_opt('it_feature_img_enable')) {
$featured_image = @$featured_images[$question['raw']['postid']]['content'];
if (isset($featured_image)) {
$q_list['qs'][$index]['featured'] = qa_opt('it_featured_url_abs') . 'featured/' . $featured_image;
}
}
if (isset($comments[$question['raw']['postid']])) {
$q_list['qs'][$index]['comments'] = $comments[$question['raw']['postid']];
} else {
$q_list['qs'][$index]['comments'] = 0;
//.........这里部分代码省略.........
示例8: q_list
function q_list($q_list)
{
if (isset($q_list['qs'])) {
if (qa_opt('cs_enable_except')) {
// first check it is not an empty list and the feature is turned on
// Collect the question ids of all items in the question list (so we can do this in one DB query)
$postids = array();
foreach ($q_list['qs'] as $question) {
if (isset($question['raw']['postid'])) {
$postids[] = $question['raw']['postid'];
}
}
if (count($postids)) {
// Retrieve the content for these questions from the database and put into an array
//$result = qa_db_query_sub('SELECT postid, content, format FROM ^posts WHERE postid IN (#)', $postids);
//$postinfo = qa_db_read_all_assoc($result, 'postid');
//cache and apply keys to array now that I can't use array key argument in qa_db_read_all_assoc
$posts = qa_db_read_all_assoc(qa_db_query_sub('SELECT postid, content, format FROM ^posts WHERE postid IN (#)', $postids));
$postinfo = array();
foreach ($posts as $qitem) {
$postinfo[$qitem['postid']] = $qitem;
}
// Get the regular expression fragment to use for blocked words and the maximum length of content to show
$blockwordspreg = qa_get_block_words_preg();
$maxlength = qa_opt('cs_except_len');
// Now add the popup to the title for each question
foreach ($q_list['qs'] as $index => $question) {
$thispost = @$postinfo[$question['raw']['postid']];
if (isset($thispost)) {
$text = qa_viewer_text($thispost['content'], $thispost['format'], array('blockwordspreg' => $blockwordspreg));
$text = qa_shorten_string_line($text, $maxlength);
$q_list['qs'][$index]['content'] = '<SPAN>' . qa_html($text) . '</SPAN>';
}
}
}
}
$this->output('<div class="qa-q-list' . ($this->list_vote_disabled($q_list['qs']) ? ' qa-q-list-vote-disabled' : '') . ((bool) qa_opt('cs_enable_clean_qlist') ? ' clean' : '') . '">', '');
$this->q_list_items($q_list['qs']);
$this->output('</div> <!-- END qa-q-list -->', '');
} else {
$this->output('
<div class="no-items">
<h3 class="icon-sad">' . qa_lang_html('cleanstrap/no_users') . '</h3>
<p>' . qa_lang_html('cleanstrap/no_results_detail') . '.</p>
</div>');
}
}
示例9: qa_page_q_edit_a_form
function qa_page_q_edit_a_form($answerid)
{
require_once QA_INCLUDE_DIR . 'qa-util-string.php';
global $questionid, $question, $answers, $inacontent, $inaformat, $inaeditor, $aerrors, $qa_content, $innotify, $inemail, $jumptoanchor, $commentsfollows;
$answer = $answers[$answerid];
$content = isset($inacontent) ? $inacontent : $answer['content'];
$format = isset($inaformat) ? $inaformat : $answer['format'];
$editorname = isset($inaeditor) ? $inaeditor : qa_opt('editor_for_as');
$editor = qa_load_editor($content, $format, $editorname);
$hascomments = false;
foreach ($commentsfollows as $commentfollow) {
if ($commentfollow['parentid'] == $answerid) {
$hascomments = true;
}
}
$form = array('title' => '<A NAME="a_edit">' . qa_lang_html('question/edit_a_title') . '</A>', 'style' => 'tall', 'fields' => array('content' => array_merge($editor->get_field($qa_content, $content, $format, 'acontent', 12, true), array('error' => qa_html(@$aerrors['content'])))), 'buttons' => array('save' => array('label' => qa_lang_html('main/save_button')), 'cancel' => array('tags' => 'NAME="docancel"', 'label' => qa_lang_html('main/cancel_button'))), 'hidden' => array('editor' => qa_html($editorname), 'dosavea_' . qa_html($answerid) => '1'));
// Show option to convert this answer to a comment, if appropriate
$commentonoptions = array();
$lastbeforeid = $questionid;
// used to find last post created before this answer - this is default given
$lastbeforetime = $question['created'];
if ($question['commentable']) {
$commentonoptions[$questionid] = qa_lang_html('question/comment_on_q') . qa_html(qa_shorten_string_line($question['title'], 80));
}
foreach ($answers as $otheranswer) {
if ($otheranswer['postid'] != $answerid && $otheranswer['created'] < $answer['created'] && $otheranswer['commentable'] && !$otheranswer['hidden']) {
$commentonoptions[$otheranswer['postid']] = qa_lang_html('question/comment_on_a') . qa_html(qa_shorten_string_line(qa_viewer_text($otheranswer['content'], $otheranswer['format']), 80));
if ($otheranswer['created'] > $lastbeforetime) {
$lastbeforeid = $otheranswer['postid'];
$lastebeforetime = $otheranswer['created'];
}
}
}
if (count($commentonoptions)) {
$form['fields']['tocomment'] = array('tags' => 'NAME="tocomment" ID="tocomment"', 'label' => '<SPAN ID="tocomment_shown">' . qa_lang_html('question/a_convert_to_c_on') . '</SPAN>' . '<SPAN ID="tocomment_hidden" STYLE="display:none;">' . qa_lang_html('question/a_convert_to_c') . '</SPAN>', 'type' => 'checkbox', 'tight' => true);
$form['fields']['commenton'] = array('tags' => 'NAME="commenton"', 'id' => 'commenton', 'type' => 'select', 'note' => qa_lang_html($hascomments ? 'question/a_convert_warn_cs' : 'question/a_convert_warn'), 'options' => $commentonoptions, 'value' => @$commentonoptions[$lastbeforeid]);
qa_set_display_rules($qa_content, array('commenton' => 'tocomment', 'tocomment_shown' => 'tocomment', 'tocomment_hidden' => '!tocomment'));
}
// Show notification field if appropriate
if ($answer['isbyuser']) {
qa_set_up_notify_fields($qa_content, $form['fields'], 'A', qa_get_logged_in_email(), isset($innotify) ? $innotify : !empty($answer['notify']), isset($inemail) ? $inemail : @$answer['notify'], @$aerrors['email']);
}
$form['c_list'] = qa_page_q_comment_follow_list($answer);
$jumptoanchor = 'a_edit';
return $form;
}