Composite C1 - Language / Localization in Blog module - c1-cms

I have added a second language, French, to a Composite C1 site (System/Languages/Add Language).
It works fine for content pages when I select the language (bottom right).
However - blogs do not have this option. How can I add languages to blog posts?

First of all, enable localization on the Blog's data types:
Composite.Community.Blog.Authors
Composite.Community.Blog.Tags
Composite.Community.Blog.Entries
For this:
In the Data perspective:
select each of the data types
click Enable Localization on the tool bar
and follow the wizard to finish the task
Next, translate tags and athors:
In the Content perspective / Website Items / Blog Settings:
select data items below Authors and Tags
click Translate on the toolbar to create a language copy of the item
Then translate it
Finally, translate the blog posts likewise
Expand the blog page, then Blog entries, then the date folder
select a blog post
cick Translate on the toolbar
then actually translate the post to your language

Related

Overview page of elements from a Typo3 page tree

I'm primarily a UI and graphic designer and, eventhough I have some experience with Typo3, I'm completely stuck at the following problem:
I have a large page tree with single pages for items from a catalogue (one item per page), the layouts for these items are built with Armin Vieweg's beautiful "Dynamic Content Elements" extension (DCE).
Now I want to create an overview page where I reference some of those items automatically - ideally I want to check a box in each element I want to display there (I would add a field catalogueItemPreview to the item DCE which authors can check or uncheck).
Unfortunately, I have no concrete idea of how the database is structured and how I could build a query (where would I even do that? in a custom-made plugin?).
This is how I imagine it could work: On the overview page I use a plugin/an extension in a Content Element that does the following:
search Typo3 DB for content elements with a field called "catalogueItemPreview"
return fields "catalogueItemTitle", "catalogueItemShortDescription", "cataloguePreviewImage"
use a template to render previews of all those elements on the overview page
I'm happy for ANY pointers towards a solution as currently I'm completely in the dark about where even to begin ...
Schematic screenshot from the Typo3 backend
thanks for using my DCE extension :)
Well the fields you have defined and their values in content elements are stored as XML, because the current version of DCE is based on Flexforms.
This makes it very very difficult to do MySQL queries using one of the field properties in WHERE clause. You could check for a xml string in the field pi_flexform but this is not recommended.
Instead I would use another property of content elements (tt_content) to mark the items as "Show on frontpage". For example you could create a new layout or section_frame value for that. Then it is very easy to just output the elements you want, using TypoScript.

Veeva Salesforce uploading presentation

maybe this is not a good quetion posted on this site, but I am trying to upload a presentation to SalesForce (https://test.salesforce.com/). I understand that at first I have to create "Key messages" which represent each slides in the presentation, then I create new CLM presentation and select presentation slides.
But then I am stucked. Is this everything to uploading the presentation or I have to migrate the presentation somewhere, upload somewhere else using FTP, etc.
I hope my question is understandable (because my English is not very good).
Thanks for help.
AFAIK, follow these steps to upload a presentation with single slide..
Create a Key message and upload the media (zip file). (Simply give key message name and upload proper well-formed zip)
Create a Presentation Slide (Just slide name)
Now, create a CLM Presentation, in which you need to browse and select the above 2 objects against their respective fields.
That's it on salesforce.
Now sync iRep app on device/iPad and it should come down in "Media".
Try this,
1.Create a new presentation
2.Go to CLM Key Messages tab and here, before creating a new key message you might need to create a new view("Create New View" link button) to group these key messages(at least that's how I do it).
Here you need to make sure that the filter method is set correctly otherwise I won't be able to see those key messages attached to this view.
So you can set sth like this(on step 2):
Field | Operator | Value
Message | contains | slide_prefix
On step 3 you need to add "Message" in "Selected fields" Tab
3.Now create a "New CLM Message" and make sure that it has "slide_prefix" on his name composition(Ex: if slide_prefix is "EXSlide" then clm message should be named like: EXSlide myslide01 or EXSlide_slide01)
4.After creating CLM key message you will be redirected to his info page where you need to upload the ".zip" file.
5.Last step is to create "New Presentation Slide"(On the bottom of the page). Here you need to input the Presentation(presentation name created on step 1), key message name(you can search for them) and a display order
Now sync the ipad and it should appear.
In addition to sTx answer, you can take a look at the "Veeva Content Creation Guidelines" (Link below). This will fit most of your developer needs.
Veeva Content Creation Guidelines
Keep in mind that often client groups have special region codes and labeling rules (see also: sTx answer to "Prefix" rules), that you have to follow, to match users and contents in a global account. If you dont, nothing will appear on the iPad. Example: yourID + Language + Country (YourID_ENG_UK.zip)
Also companys often split thier environment in two, a sandbox and a production section - Make sure you have the permission to see sandbox contents. For this purpose, activate the "Training Content" checkbox on the presentation object, to see your presentation without a migration.
All contents you create in the backend are by default visible to you on the iPad. Check the "Config" > "Media" list and look for your Zips files; if they get downloaded.

CMS database design, modules?

Im working on simple PHP CMS system and Im stuck with database design.
This is the problem.
I have table named pages, it holds all pages I can add and information about this page like page_url, page_order etc..
Now... Every page can be either webpage that can hold some html content. But it can also be a Blog or anything else. There can be only one blog page. And Blog on the other hand can have blog posts and blog categories.
Simply put, I have pages table that represents all pages I can create.
And every page can be different, it can be webpage, blog module, guestbook, contacts page.
And every page will have different purpose.
So the problem is how to design this?
Now this may not be clear at this moment, but here is my current design so maybe it will be easier to grasp what Im trying to achive:
pages
page_id
page_name
page_url
...
webpages
webpage_id
page_id
webpage_content
webpage_date_created
...
blogs
blog_id
page_id
...
blog_posts
blog_post_id
blog_post_title
blog_post_content
...
blog_categories
blog_category_id
blog_category_name
blog_category_url
...
So, I have pages table that holds all pages, but those pages can be either webpage(simple "static" webpage) or it can be blog, and blog can have posts, categories etc...
So now, if I come to the page which id belongs to webpages template, I joust fetch content and stuff i need and hand it back to controller and the view.
And if I come to the page which id belongs to blog, then I fetch latest posts and show that to the user.
And latter I would like to extend pages so page can be guestbook or anything else.
Basicly, I need database design where pages would be stored in pages table, and each page can be seperate module that would be presented on different way.
Is this the way to go like I described above? Or could it be done better?
Am I doing something wrong here?
There doesn't seem to be anything fundamentally wrong here - you're using object-oriented conventions, which I can't encourage enough. If I understand, all of your pages will be listed in the PAGES table, and then will be connected by PAGE_ID to their appropriate category?
This allows you to continue to add different page types if you so choose, as well as keep a single list of all of the pages present on your site.
The only thing I would add, is perhaps a 'type' column in your pages table. Even though you'd be able to determine this by running a page_id query on the other (blog and webpage) tables, it might make your life easier in the long-run if you're interested in really scaling and being able to gather a quick since of your application makeup (25% static pages, etc, etc).
This layout also would allow you to combine types (if a page_id was present in the blog and webpage tables) you could introduce some static content while also dropping in your dynamic blog features.
Looks good to me:)
Use a "type" column to specify what type of content the page contains. Then use a join table to associate your content with your page. Like:
pages
->id [123]
->type ['blog']
blogs
->id [123]
->title ['My Blog']
pages_blogs
->id [123]
->page_id [123]
->blog_id [123]

Node referencing: How do you display (with VIEWS) a node(edition) with all its references (articles)?

Ingredients:
Drupal7 + References + Views module installed 2 content types:
magazine issue + magazine articles (for each issue)
Article c-type has a reference field: issue_no which displays the
issue it belongs
I made a Views to display me a plain list of issues only.
Requirements
1. When I click on the issue in the issue list I want to see all its references nodes(=articles) attached
2. I need to highlight the latest issue in the list by creating a separate page VIEW on the frontpage that contains articles of the latest view.
I would appreciate any help.
Recently I have done something similar for a project. In article view page go to advanced-> add a contextual filter of issue no. In magazine issue view page in fields-> add -> add a custom text field -> rewrite results -> select Output this field as a link to link it to your article view page with argument as issue no.
For example if your article list view page is article_list, you can add a rewrite result in custom text as article_list/[field_issue_no]; where [field_issue_no] is your issue no field.

How do you display info from a database

I have figured out how to add data from a model into a grid like the examples on the learning section of the Agile Toolkit website. But I'm looking for the correct way to show data from a database without a grid.
Say I have a news database and I want to display it as a blog style news on my home page. Can someone point me to where to begin?
Trying to make this a little more clear:
I want to display data from multiple columns from a table news. So I would need to know how to get the title, date, author, content and then repeat that for say 5 latest news articles.
try this:
$this->add('View',null,null,array('view/mytemplate'))
->setModel('MyModel')
->loadData(123);
then inside templates/defaults/view/mytemplate.html
<div><h2><?$title?></h2>
<p><?$content?></p>
</div>
You can also use it with any view, even page.
$data=$model->get();
$page->template->set($data);
you can re-define template for your page by defining defaultTemplate function
function defaultTemplate(){
return array('page/mypage');
}

Resources