Expressエンティティエントリーデータ件数の取得について

2021年3月15日 at 18:03

フォーラムの皆さま

平素は大変お世話になっております。
引き続き、concrete5による、外部フォームWebアンケートの
開発を続けております。

以前、このフォーラムで質問をさせていただきました、Express
エンティティのエントリーデータをCSVでダウンロードする機能を
実装いたしましたが、エンティティのエントリーデータ件数を取得
したいと思っております。

Webアンケートでは、プルダウンメニューから、エンティティを
選択後、「ダウンロード」ボタンを押下すると、該当するエンティティ
のエントリーデータをCSVファイルとしてダウンロードできる機能を
実装しておりますが、その際、エントリーデータが1件もない場合は
ダウンロードしないような分岐処理を実装したいと考えております。

ビュー側の、リストボックス値をコントローラにPOSTしてきて、
$input['csvent'] = $this->post('csvent');
$me = $this;

if (isset($input['csvent']) && $input['csvent'] != ''){
$entname = $input['csvent'];
}

//$fileName = $entname.' download file';
$entity = Express::getObjectByHandle($entname);

$headers = [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename=' . $entity->getHandle() . '.csv',
];
としておりますが、$entity のアトリビュートに、エントリーデータの件数を
保持している連想配列などがないか、確認しておりますが、見つけられておりません。

エンティティオブジェクトは取得できておりますので、エントリーデータ件数
を保持する配列名など、どのようなことでも結構でございますので、ご教示
賜りますと嬉しく存じます。

どうぞよろしくお願い申し上げます。

# concrete5 Version
Core Version - 8.5.4
Version Installed - 8.5.4
Database Version - 20200609145307

# Database Information
Version: 5.1.73
SQL Mode:

# concrete5 Packages
Bootstrap4 Website Theme (1.0.0), Cloneamental (0.9.3), CSV User Import & Export (0.1.1), Honest Websites Back To Top (1.1.0), Login/Logout Link (1.0), Login Page Background (0.9.1), Manual Nav (2.3.3), Migration Tool (0.9.1)

# concrete5 Overrides
blocks/external_form/form/controller/tkp_menu.php, blocks/external_form/form/controller/enq_a.php, blocks/external_form/form/controller/enq_b.php, blocks/external_form/form/controller/enq_c.php, blocks/external_form/form/controller/shukai.php, blocks/external_form/form/controller/enqopt.php, blocks/external_form/form/controller/emenu.php, blocks/external_form/form/controller/mailtmp.php, blocks/external_form/form/controller/csvdwn.php, blocks/external_form/form/controller/maildelete.php, blocks/external_form/form/controller, blocks/external_form/form/tkp_menu.php, blocks/external_form/form/enq_a.php, blocks/external_form/form/enq_b.php, blocks/external_form/form/enq_c.php, blocks/external_form/form/shukai.php, blocks/external_form/form/enqopt.php, blocks/external_form/form/emenu.php, blocks/external_form/form/mailtmp.php, blocks/external_form/form/csvdwn.php, blocks/external_form/form/maildelete.php, blocks/external_form/form, blocks/external_form, mail/mail_send_hyoka_a.php, mail/mail_send_hyoka_b.php, mail/mail_2tmp.php, mail/mail_1tmp.php, mail/mail_3tmp.php, mail/mail_4tmp.php, mail/mail_5tmp.php, mail/mail_6tmp.php, themes/tkpsurvey/css/custom.css, themes/tkpsurvey/css, themes/tkpsurvey/default.php, themes/tkpsurvey/description.txt, themes/tkpsurvey/elements/footer-form.php, themes/tkpsurvey/elements/header_top-form.php, themes/tkpsurvey/elements, themes/tkpsurvey/form.php, themes/tkpsurvey/js/custom.js, themes/tkpsurvey/js, themes/tkpsurvey/thumbnail.png, themes/tkpsurvey

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - Off
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache

# Server API
apache2handler

# PHP Version
7.3.15

# PHP Extensions
apache2handler, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, imap, intl, json, ldap, libxml, mbstring, mcrypt, mysqli, mysqlnd, odbc, openssl, pcre, PDO, pdo_mysql, PDO_ODBC, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, recode, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib

# PHP Settings
max_execution_time - 3600
log_errors_max_len - 4096
max_file_uploads - 100
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 256M
post_max_size - 384M
upload_max_filesize - 256M
ldap.max_links - Unlimited
mbstring.regex_stack_limit - 100000
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
odbc.max_links - Unlimited
odbc.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
pgsql.max_links - Unlimited
pgsql.max_persistent - Unlimited
session.cache_limiter - no value
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5
opcache.max_accelerated_files - 4000
opcache.max_file_size - 0
opcache.max_wasted_percentage - 5

タグ:

Re: Expressエンティティエントリーデータ件数の取得について

2021年3月16日 at 11:37
フォーラムの皆さま

いつも暖かいご支援を賜りまして、まことにありがとうございます。
質問事項に関しまして、自己解決いたしましたので、ご報告申し上げます。

http://documentation.concrete5.org/api/8.0/Concrete/Core/Entity/Express/Entity.html#method_getEntries

上記URLを確認し、
エンティティオブジェクトが取得されている前提で、
$entityno = count($entity->getEntries());
で、エントリー数が取得できました。
あとは、この数値を条件に、ダウンロード処理を分岐したいと思います。

ありがとうございました。