如何为TYPO3 8.7中的自定义内容元素启用RTF编辑器?
我尝试过
private Context mContext ;
private ArrayList<Picture> mData ;
private ArrayList<Picture> mDataFiltered;
public CoffretPicturesAdapter(Context mContext, ArrayList<Picture> mData) {
this.mContext = mContext;
this.mData = mData;
this.mDataFiltered = mData;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view ;
LayoutInflater mInflater = LayoutInflater.from(mContext);
view = mInflater.inflate(R.layout.cardview_item_coffret,parent,false);
return new MyViewHolder(view);
}
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
String charString = charSequence.toString();
if (charString.isEmpty()) {
mDataFiltered = mData;
} else {
ArrayList<Picture> filteredList = new ArrayList<>();
for (Picture row : mData) {
// name match condition. this might differ depending on your requirement
// here we are looking for name or phone number match
if (row.getTitle().toLowerCase().contains(charString.toLowerCase())) {
filteredList.add(row);
}
}
mDataFiltered = filteredList;
}
FilterResults filterResults = new FilterResults();
filterResults.values = mDataFiltered;
return filterResults;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
mDataFiltered = (ArrayList<Picture>) filterResults.values;
notifyDataSetChanged();
}
};
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.coffret_title.setText(mDataFiltered.get(position).getTitle());
Picasso.with(mContext).load(mDataFiltered.get(position).getUri()).placeholder(R.drawable.placeholder).resize(500,500).centerCrop().into(holder.coffret_thumbnail);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext, "" + mDataFiltered.get(position).getTitle(), Toast.LENGTH_SHORT).show();
Intent intent = new Intent(mContext, SelectedPicPreviewActivity.class);
intent.putExtra("image_url", mDataFiltered.get(position).getUri().toString());
mContext.startActivity(intent);
}
});
holder.cardView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
holder.checkBox.setVisibility(View.VISIBLE);
return true;
}
});
}
@Override
public int getItemCount() {
return mDataFiltered.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
TextView coffret_title;
ImageView coffret_thumbnail;
LinearLayout cardView ;
CircleCheckBox checkBox;
public MyViewHolder(View itemView) {
super(itemView);
coffret_title = (TextView) itemView.findViewById(R.id.coffret_title_id) ;
coffret_thumbnail = (ImageView) itemView.findViewById(R.id.coffret_img_id);
cardView = (LinearLayout) itemView.findViewById(R.id.cardview_id);
checkBox = (CircleCheckBox) itemView.findViewById(R.id.circle_check_box);
}
}
和
$GLOBALS['TCA']['tt_content']['types']['myCustomElement'] = array('showitem' => '--palette--;
LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:palette.general;
general,header,subheader,header_link,bodytext,
richtext:rte_transform[flag=rte_enabled|mode=ts_css],rte_enabled;
image,--div--;
LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:tabs.appearance,--palette--;
LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:palette.frames;
frames,--div--;
LLL:EXT:cms/locallang_ttc.xlf:tabs.access,--palette--;
LLL:EXT:cms/locallang_ttc.xlf:palette.visibility;
visibility,--palette--;
LLL:EXT:cms/locallang_ttc.xlf:palette.access;
access,--div--;
LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category, categories, tx_gridelements_container, tx_gridelements_columns');
在TCA中的/在我的扩展程序中替代。我想念什么?
答案 0 :(得分:1)
我已经改善了您的代码,并且现在可以正常工作
$myfield=[
'showitem' => '
--palette--; LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:palette.general; general,header,subheader,header_link,bodytext,image,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:tabs.appearance,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:palette.frames;frames,
--div--;LLL:EXT:cms/locallang_ttc.xlf:tabs.access,
--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.visibility;visibility,
--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.access;access,
--div--;LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category, categories, tx_gridelements_container, tx_gridelements_columns
',
'columnsOverrides' => [
'bodytext' => [
'config' => [
'enableRichtext' => true,
'richtextConfiguration' => 'default'
]
]
]
];
还有
$GLOBALS['TCA']['tt_content']['types']['myCustomElement']=$myfield;
愿对您有帮助!
答案 1 :(得分:0)
TYPO3中的RTE来自一个名为 rte_ckeditor 的TYPO3-System-Extension。我设法以某种方式取消了激活。重新激活它后,我在TCA中使用了以下内容:
$GLOBALS['TCA']['tt_content']['types']['myCustomElement'] = array('showitem' =>'--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:palette.general;general,header,subheader,header_link,bodytext,image,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:tabs.appearance,--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xml:palette.frames;frames,--div--;LLL:EXT:cms/locallang_ttc.xlf:tabs.access,--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.visibility;visibility,--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.access;access,--div--;LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category, categories, tx_gridelements_container, tx_gridelements_columns');
$GLOBALS['TCA']['tt_content']['types']['myCustomElement']['columnsOverrides']['bodytext']['defaultExtras'] = 'richtext[*]:rte_transform[mode=ts_css]';