1からまでを表示 (計82) |
yasuさん
ありがとうございます。
改めて新しいフォーラムへ投稿しておきます。
Posted on 12月 22, 2021 at 10:10 午前
|
わたしも同じ悩みにぶつかってしまいました。
簡単な予約システムをExpressで作成したいのですが、
入力された情報をユーザにも返信したいと思います。
外部フォームやレガシーフォームの自動返信に関する情報は見つかりましたが、
Expressフォームに関する情報がなかなか見つかりません。
どなたか実現方法をご教示いただけないでしょうか。
よろしくお願いいたします。
Posted on 12月 21, 2021 at 11:59 午前
|
$this->surveyName
にフォームの名前が入ってくるようですので、
@$mh->sendMail();
より前の任意の場所で
if (($this->surveyName =="sampleform"){
//ここにsampleformだった場合の処理を書きます
}
のようにしてメールの属性等を設定してあげれば良いと思います。
Posted on 8月 18, 2021 at 6:50 午後
|
お世話になっております。
395回週刊concrete5でもご回答いただきありがとうございました。
以下、2ファイルについて試してみましたが、
「Psr4ClassLoader が見つからない」というエラーになってしまいます。
何か設定が足りないでしょうか?
追加で情報あればご教示ください。よろしくお願いいたします。
▼Application/src/Form/Service/Widget/DateTime.php
namespace Application\Form\Service\Widget;
class DateTime
{
}
▼Application/bootstrap/autoload.php
defined('C5_EXECUTE') or die('Access Denied.');
/*
* ----------------------------------------------------------------------------
* Load all composer autoload items.
* ----------------------------------------------------------------------------
*/
$classLoader = new \Symfony\Component\ClassLoader\Psr4ClassLoader();
$classLoader->addPrefix('Application\\Form\\Service\\Widget', DIR_APPLICATION . '/' . DIRNAME_CLASSES . '/Form/Service/Widget');
$classLoader->register();
▼結果
Fatal error: Uncaught Error: Class 'Symfony\Component\ClassLoader\Psr4ClassLoader' not found in /home/****/****/public-html/***/application/bootstrap/autoload.php:13 Stack trace: #0
/home/****/****/public-html/***/concrete/bootstrap/autoload.php(10): include() #1
/home/****/****/public-html/***/concrete/dispatcher.php(29): require('/home/devbean/b...') #2
/home/****/****/public-html/***/index.php(3): require('/home/devbean/b...') #3 {main} thrown in
/home/****/****/public-html/***/application/bootstrap/autoload.php on line 13
Posted on 5月 29, 2021 at 5:32 午後
|
hissyさん、ありがとうございます!
無事カスタムテンプレートで値を取得することが出来ました。
if (isset($entry) && is_object($entry)) {
$name = $entry->getName();
$department = $entry->getDepartment();
$memo = $entry ->getMemo();
$img = $entry ->getImages();
}
※Name、Department、Memo等はエンティティ名
エンティティ名で自動的にメソッドを作ってくれるんですね!(スゴイ。)
大変勉強になりました、ありがとうございました!
Posted on 5月 28, 2021 at 12:50 午後
|
▼Expressエンティティをページ属性として表示
1)ページタイプの「出力」でページタイプの初期表示画面を開いて、
Express詳細ブロックを任意の場所へ追加。
2)「Expressエントリー詳細を編集」画面で
エントリー:「このページのカスタム属性のエントリーを取得」
エクスプレスエントリー属性:該当する属性を選択
データを表示するエンティティフォーム:該当するフォームを選択
これで値自体は表示されるようになりましたが、新たに疑問が出てきました。
各要素に別々のクラスを与えたいのですが、その方法がわかりません。
また、画像属性もエンティティに含まれているので、画像として表示したいのですが、
<div class="form-group">
<div>
<label class="control-label">アイコン画像</label>
</div>
<div>
<a target="_blank" href="/download_file/7/266" class="ccm-attribute-image-file ccm-attribute-image-file-画像">avatar.png</a>
</div>
</div>
のようにファイル名で表示されてしまいます。
/concrete/elements/express/form/view/form.php 内のforeach()で値が動的に取得されているのかな、
という程度までは理解できましたが、具体的に各属性を判別するにはどうしたらよいのでしょうか?
最適な方法があればご教示いただければ幸いです。
よろしくお願いいたします。
Posted on 5月 27, 2021 at 8:43 午後
|
情報ありがとうございます!
確認いたします!
Posted on 5月 27, 2021 at 4:13 午後
|
ありがとうございます!
使ってみます!
Posted on 5月 27, 2021 at 4:10 午後
|
コアファイルのオーバーライドを行いたいのですが、エラーになってしまうので
どこが間違っているのかご教示いただければ幸いです。
作業はこちらの記事を参考にして行ってみました。
https://concrete5-japan.org/help/5-7/recipes/override-almost-any-core-file-in-5-7/
オーバーライドしたいファイル:
/concrete/src/Form/Service/Widget/DateTime.php
行った作業:
1)/concrete/src/Form/Service/Widget/DateTime.php を
/Application/src/Form/Service/Widget へコピーしてnamespaceを以下に変更
namespace Application\Src\Form\Service\Widget;
2)/concrete/config/app.php の中の
'core_form' => '\Concrete\Core\Form\FormServiceProvider',
を確認
3) /application/config/app.php を開いて
return [
'providers' => array(
'core_form' => '\Application\Src\Form\CustomFormServiceProvider'
)
];
とします。
4)/concrete/src/Form/FormServiceProvider.php を
/application/src/Form/ へコピーしてファイル名をCustomFormServiceProvider.php とします。
5)ファイルの中身を以下に変更
namespace Application\Src\Form;
class CustomFormServiceProvider extends \Concrete\Core\Form\FormServiceProvider
{
public function register()
{
$singletons = [
'helper/form' => '\Concrete\Core\Form\Service\Form',
'helper/form/attribute' => '\Concrete\Core\Form\Service\Widget\Attribute',
'helper/form/color' => '\Concrete\Core\Form\Service\Widget\Color',
'helper/form/font' => '\Concrete\Core\Form\Service\Widget\Typography',
'helper/form/typography' => '\Concrete\Core\Form\Service\Widget\Typography',
'helper/form/date_time' => '\Application\Src\Form\Service\Widget\DateTime',
'helper/form/page_selector' => '\Concrete\Core\Form\Service\Widget\PageSelector',
'helper/form/rating' => '\Concrete\Core\Form\Service\Widget\Rating',
'helper/form/user_selector' => '\Concrete\Core\Form\Service\Widget\UserSelector',
'helper/form/group_selector' => '\Concrete\Core\Form\Service\Widget\GroupSelector',
'form/express/entry_selector' => '\Concrete\Core\Form\Service\Widget\ExpressEntrySelector',
];
foreach ($singletons as $key => $value) {
$this->app->singleton($key, $value);
}
$this->app->singleton(ControlRegistry::class);
$this->app->bind(DestinationPicker\DestinationPicker::class, function (Application $app) {
return $app->build(DestinationPicker\DestinationPicker::class)
->registerPickers([
'none' => $app->make(DestinationPicker\NoDestinationPicker::class),
'page' => $app->make(DestinationPicker\PagePicker::class),
'file' => $app->make(DestinationPicker\FilePicker::class),
'external_url' => $app->make(DestinationPicker\ExternalUrlPicker::class),
'email' => $app->make(DestinationPicker\EmailPicker::class),
])
;
});
}
}
この作業ですべてのページで以下のエラーとなってしまいます。
Fatal error: Uncaught Error: Class '\Application\Src\Form\CustomFormServiceProvider' not found in /home/****/****/public-html/***/concrete/src/Foundation/Service/ProviderList.php:37 Stack trace: #0 /home/****/****/public-html/***/concrete/src/Foundation/Service/ProviderList.php(25): Concrete\Core\Foundation\Service\ProviderList->createInstance('\\Application\\Sr...') #1 /home/****/****/public-html/***/concrete/src/Foundation/Service/ProviderList.php(48): Concrete\Core\Foundation\Service\ProviderList->registerProvider('\\Application\\Sr...') #2 /home/****/****/public-html/***/concrete/src/Foundation/Runtime/Boot/DefaultBooter.php(320): Concrete\Core\Foundation\Service\ProviderList->registerProviders(Array) #3 /home/****/****/public-html/***/concrete/src/Foundation/Runtime/Boot/DefaultBooter.php(104): Concrete\Core\Foundation\Runtime\Boot\DefaultBooter->initializeServiceProviders(Object(Concrete\Core\Application\Application), in /home/****/****/public-html/***/concrete/src/Foundation/Service/ProviderList.php on line 37
何卒よろしくお願いいたします。
# concrete5 Version
Core Version - 8.5.5
Version Installed - 8.5.5
Database Version - 20201116182100
# Database Information
Version: 5.7.31
SQL Mode:
# concrete5 Packages
None
Posted on 5月 27, 2021 at 3:58 午後
|
ブログページを作成する際、作成担当者を選択すると、ページに名前、所属、アイコン画像が自動的に表示されるように考えています。
そこでまず、Expressでエンティティ(staff)を作成し、属性(name,department,images)を追加しました。
これをブログページのページ属性(att_staff)として設定し、コンポーザで選択するところまではできました。
次に、選択された担当者の情報を表示するプログラムをテンプレート(blog.php)へ
追加したいのですが、その表記方法がわかりません。
同じようなことをやられた経験がある方、もしくは参考文献などあれば、ご教示いただけますでしょうか。
こんな書き出しで始まると思うのですが。
$c = Page::getCurrentPage();
$ent = $c->getAttribute('att_staff');
if (!empty($ent)){
:
:
}
よろしくお願いいたします。
Posted on 5月 27, 2021 at 3:51 午後
|