ฉันมีตัวกรองที่เปิดเผยสองสามตัวเพื่อกรองเนื้อหาในมุมมองของฉัน ส่วนใหญ่ของพวกเขาเป็นเงื่อนไขอนุกรมวิธานตอนนี้ฉันต้องการที่จะแสดงจำนวนโหนดที่ติดแท็กด้วยคำว่าหลังคำเทอม
ตัวอย่าง:
London (5)
Paris (3)
Madrid (2)
...
ความคิดใดที่ฉันสามารถทำได้?
ฉันมีตัวกรองที่เปิดเผยสองสามตัวเพื่อกรองเนื้อหาในมุมมองของฉัน ส่วนใหญ่ของพวกเขาเป็นเงื่อนไขอนุกรมวิธานตอนนี้ฉันต้องการที่จะแสดงจำนวนโหนดที่ติดแท็กด้วยคำว่าหลังคำเทอม
ตัวอย่าง:
London (5)
Paris (3)
Madrid (2)
...
ความคิดใดที่ฉันสามารถทำได้?
คำตอบ:
นี่คือตัวอย่างรหัสให้ทำ:
function hook_form_alter(&$form, &$form_state, $form_id) {
switch($form_id) {
case 'views_exposed_form':
$allowed_categories = db_query("SELECT 1 as tid, "Term Name (2)" as `name`")->fetchAllKeyed();
$allowed_categories = array_reverse($allowed_categories, TRUE);
$allowed_categories['All'] = '- Any -';
$allowed_categories = array_reverse($allowed_categories, TRUE);
$form['field_category_tid']['#options'] = $allowed_categories;
break;
}
}
เพียงแค่เปลี่ยนแบบสอบถามเพื่อกลับ 2 คอลัมน์ - tid และชื่อที่มีการนับ
hook_form_alter()
ฉันสร้างโมดูลที่มี
ในฟังก์ชั่นนั้นฉันสร้างแบบสอบถามที่นับโหนดที่แนบมากับคำศัพท์อนุกรมวิธานบางอย่างและเพิ่มหมายเลขนี้ในตอนท้ายของทุกคำ
function hook_form_alter(&$form, &$form_state, $form_id) {
switch($form_id){
case 'views_exposed_form':
if ($form_state['view']->name == 'viewname') {
//must add some bool so this doesn't get into infinite loop
if(!isset($form_state['view']->gg)){
$form_state['view']->gg = TRUE;
$form_state['view']->execute();
}
$form['results_count'] = array(
'#markup' => t('!count results match your criteria', array('!count' => '<b>'.$form_state['view']->total_rows.'</b>')),
'#weight' => -99,
);
}
break;
}
}
ลิงค์ (อาจมีประโยชน์)
นี่คือตัวอย่างจากเว็บไซต์จริงของฉัน field_marka_prochnosti เป็นฟิลด์ของโหนดที่แสดงโดยคำศัพท์อนุกรมวิธาน ฉันใช้ phpMyAdmin เพื่อเรียนรู้ชื่อของตารางและชื่อของเขตข้อมูลของตารางนั้นเพื่อสร้างแบบสอบถาม Bricksale_omega เป็นชื่อธีมของฉัน
function bricksale_omega_form_alter(&$form, &$form_state, $form_id) {
switch($form_id){
case 'views_exposed_form':
foreach ($form['field_marka_prochnosti_tid']['#options'] as $tid => &$value) {
$query = db_select('field_data_field_marka_prochnosti', 'f')
->condition('f.field_marka_prochnosti_tid', $tid);
$query->addExpression('COUNT(*)');
$count = $query->execute()->fetchField();
$value = $value . ' (' . $count . ')';
}
break;
}
}