Related
I'm getting this error and not sure why. Here's my code :
$genesis_sample_shared_content = genesis_get_config( 'onboarding-shared' );
return [
'starter_packs' => [
'black-white' => [
'title' => __( 'Black & White', 'genesis-sample' ),
'description' => __( 'A pack with a homepage designed with black and white images.', 'genesis-sample' ),
'thumbnail' => get_stylesheet_directory_uri() . '/config/import/images/thumbnails/home-black-white.jpg',
'demo_url' => 'https://demo.studiopress.com/genesis-sample/',
'config' => [
'dependencies' => [
'plugins' => $genesis_sample_shared_content['plugins'],
],
'content' => array_merge(
[
'homepage' => [
'post_title' => 'Homepage',
'post_content' => require dirname( __FILE__ ) . '/import/content/home-black-white.php',
'post_type' => 'page',
'post_status' => 'publish',
'comment_status' => 'closed',
'ping_status' => 'closed',
'meta_input' => [
'_genesis_layout' => 'full-width-content',
'_genesis_hide_title' => true,
'_genesis_hide_breadcrumbs' => true,
'_genesis_hide_singular_image' => true,
],
],
],
$genesis_sample_shared_content['content']
),
'navigation_menus' => $genesis_sample_shared_content['navigation_menus'],
'widgets' => $genesis_sample_shared_content['widgets'],
],
],
],
];
I have modified the onboarding-shared.php file and remove the code for the content Maybe this is the problem?
Update : Now the menu items are created on theme setup. Here's the modified code :
return [
'plugins' => [
[
'name' => __( 'Genesis Blocks', 'genesis-sample' ),
'slug' => 'genesis-blocks/genesis-blocks.php',
'public_url' => 'https://wordpress.org/plugins/genesis-blocks/',
],
],
'navigation_menus' => [
'primary' => [
'get-started' => [
'title' => 'Get Started',
],
'testimonials' => [
'title' => 'Testimonials',
],
'contact' => [
'title' => 'Contact Us',
],
],
],
'widgets' => [
'footer-1' => [
[
'type' => 'text',
'args' => [
'title' => 'Design',
'text' => '<p>With an emphasis on typography, white space, and mobile-optimized design, your website will look absolutely breathtaking.</p><p>Learn more about design.</p>',
'filter' => 1,
'visual' => 1,
],
],
],
'footer-2' => [
[
'type' => 'text',
'args' => [
'title' => 'Content',
'text' => '<p>Our team will teach you the art of writing audience-focused content that will help you achieve the success you truly deserve.</p><p>Learn more about content.</p>',
'filter' => 1,
'visual' => 1,
],
],
],
'footer-3' => [
[
'type' => 'text',
'args' => [
'title' => 'Strategy',
'text' => '<p>We help creative entrepreneurs build their digital business by focusing on three key elements of a successful online platform.</p><p>Learn more about strategy.</p>',
'filter' => 1,
'visual' => 1,
],
],
],
],
];
The menu items aren't for pages, they're linked to scroll points on the homepage. Not sure how to code that using the above PHP?
I removed $genesis_sample_shared_content['content'] and it now works except the menu items aren't created on theme setup maybe due to this error
Notice: Trying to get property 'name' of non-object in wp-admin/nav-menus.php on line 1098
I have a problem with Kartik/DepDrop. I have used it many times in the past but are now having an issue
My view
'contentBefore'=>'<legend class="text-info"><small>Client Info</small></legend>',
'attributes'=>[ // 2 column layout
'model'=>['type'=>Form::INPUT_DROPDOWN_LIST, 'items'=>ArrayHelper::map(\app\models\Models::find()->All(), 'id','name'), 'options'=>['prompt'=>'Please Select..','id'=>'model']],
'field'=>[
'type'=>Form::INPUT_WIDGET,
'widgetClass'=>DepDrop::classname(),
'options' => ['id'=>'field'],
'pluginOptions' => [
'depends' => ['model'],
'placeholder' => 'select ...',
'url' => Url::to(['dd-field'])
],
],
'related_value'=>['type'=>Form::INPUT_TEXT, 'options'=>['placeholder'=>'Enter Value...']],
]
And the error shows this
_form.php at line 49 – yii\base\Widget::widget(['model' => app\models\RelatedFields, 'form' => kartik\form\ActiveForm, 'autoGenerateColumns' => true, 'rows' => [['contentBefore' => '<legend class="text-info"><small...', 'attributes' => ['model' => ['type' => 'dropdownList', 'items' => [1 => 'Clients', 2 => 'InvoiceItems', 3 => 'Invoices', 4 => 'Notes', ...], 'options' => ['prompt' => 'Please Select..', 'id' => 'model']], 'field' => ['type' => 'widget', 'widgetClass' => 'kartik\depdrop\DepDrop', 'options' => ['id' => 'field'], 'pluginOptions' => ['depends' => ['model'], 'placeholder' => 'select ...', 'url' => '/related-fields/dd-field']], 'related_value' => ['type' => 'textInput', 'options' => ['placeholder' => 'Enter Value...']]]], ['attributes' => ['actions' => ['type' => 'raw', 'value' => '<div style="text-align: right; m...']]]], ...])
If you look at the plugin options it is being passed
'pluginOptions' => ['depends' => ['model'], 'placeholder' => 'select ...', 'url' => '/related-fields/dd-field']
Any ideas anyone.
Found the issue, as i am using FormGrid, the pluginOptions and htmlOptions all need to be inside an options array like this
'field'=>[
'type'=>Form::INPUT_WIDGET,
'widgetClass'=>DepDrop::classname(),
'options' => [
'options'=> ['id' => 'field'],
'pluginOptions' => [
'depends' => ['model'],
'placeholder' => 'select ...',
'url' => '/related-fields/dd-field'
],
],
],
I am totally confused with select_from_array field in laravel backpack.
in my controller i am using a select_from_array field where in options i call a function,but when i run the code error is displayed. please help me with this.
Error : FatalErrorException in EventController.php line 106: syntax error, unexpected '$this' (T_VARIABLE)
controller.php
public $crud = array(
"model" => "App\Larapen\Models\Event",
"entity_name" => "event",
"entity_name_plural" => "events",
"route" => "admin/event",
"reorder" => true,
"reorder_label" => "name",
"reorder_max_level" => 2,
"details_row" => true,
// *****
// COLUMNS
// *****
"columns" => [
[
'name' => "id",
'label' => "ID"
],
],
"fields" => [
[
'name' => "event_name",
'label' => "Event name",
'type' => "text",
'placeholder' => "Event Name",
],
[
'name' => "event_topic",
'label' => "Event Topic",
'type' => "text",
'placeholder' => "Event Topic",
],
[
'name' => "event_type_id",
'label' => "Event Type",
'model' => "App\Larapen\Models\EventType",
'entity' => "eventType",
'attribute' => "name",
'type' => "select",
],
[
'name' => "about_event",
'label' => "About event",
'type' => "ckeditor",
'placeholder' => "About the Event",
],
[
'name' => "country_code",
'label' => "Country",
'type' => 'select_from_array',
'options' => $this->countries(),
'allows_null' => false,
],
],
);
public function countries()
{
..................
}
Please help me with this , why this happens? how to solve this issue?
Waiting for a response................
You can not use the pseudo-variable $this out of class method.
http://php.net/manual/en/language.oop5.properties.php
The pseudo-variable $this is available inside any class method when that method is called from within an object context. $this is a reference to the calling object
So if you want to set the attribute of crud's with $this, you can set it in the __construct function
public function __construct()
{
$this->crud['fields'][4] = $this->countries();
}
Or initialize it the __construct function
public $crud;
public function __construct()
{
$this->crud = array(
'model' => 'App\Larapen\Models\Event',
'entity_name' => 'event',
'entity_name_plural' => 'events',
'route' => 'admin/event',
'reorder' => true,
'reorder_label' => 'name',
'reorder_max_level' => 2,
'details_row' => true,
// *****
// COLUMNS
// *****
'columns' => [
[
'name' => 'id',
'label' => 'ID'
],
],
'fields' => [
[
'name' => 'event_name',
'label' => 'Event name',
'type' => 'text',
'placeholder' => 'Event Name',
],
[
'name' => 'event_topic',
'label' => 'Event Topic',
'type' => 'text',
'placeholder' => 'Event Topic',
],
[
'name' => 'event_type_id',
'label' => 'Event Type',
'model' => 'App\Larapen\Models\EventType',
'entity' => 'eventType',
'attribute' => 'name',
'type' => 'select',
],
[
'name' => 'about_event',
'label' => 'About event',
'type' => 'ckeditor',
'placeholder' => 'About the Event',
],
[
'name' => 'country_code',
'label' => 'Country',
'type' => 'select_from_array',
'options' => $this->countries(),
'allows_null' => false,
],
],
);
}
i am working with Yii2 and using Editable Widget
My code is below
Editable::widget([
'id' => 1,
'name' => 'assignTo',
'value' => 1,
'url' => 'url here',
'type' => 'select',
'mode' => 'inline',
'clientOptions' => [
'toggle' => 'dblclick',
'emptytext' => 'Unassigned',
'placement' => 'right',
'select2' => [
'width' => '124px'
],
'source' => 1,
'value' => 1,
],
]);
i want to add custom attribute on that generated html tag. i have tried as below but its throw error
Editable::widget([
'id' => 'assignTo_'.$todo->id,
'name' => 'assignTo',
'redirect_url' => 'custom_attriute', // this is custom attribute that i need
'class' => 'my own custom class', // this is custom attribute that i need
'value' => 1,
'url' => 'url here',
'type' => 'select',
'mode' => 'inline',
'clientOptions' => [
'toggle' => 'dblclick',
'emptytext' => 'Unassigned',
'placement' => 'right',
'select2' => [
'width' => '124px'
],
'source' => 1,
'value' => 1,
],
]);
and also i want to add my own class in the generated html i have tried same as above but its not working.
is there any way to make it possible what i want?
dosamigos\editable\Editable extends yii\widgets\InputWidget which has an $options variable that holds:
The HTML attributes for the input tag.
Editable::widget([
'id' => 'assignTo_'.$todo->id,
'name' => 'assignTo',
'options' => [
'redirect_url' => 'custom_attriute', // this is custom attribute that i need
'class' => 'my own custom class', // this is custom attribute that i need
],
'value' => 1,
'url' => 'url here',
'type' => 'select',
'mode' => 'inline',
'clientOptions' => [
'toggle' => 'dblclick',
'emptytext' => 'Unassigned',
'placement' => 'right',
'select2' => [
'width' => '124px'
],
'source' => 1,
'value' => 1,
],
]);
I have been building a module in PyroCMS and have made its structure. I am using Streams API to build forms and perform my actions and also performed a dummy install to check if everything looks ok. Then I went on modifying the contents of the dummy and completing my structure. However, in the details.php file, I made a change where I created a foreign key (relationship type of field, if u know the API jargon) to retrieve a field from another stream(the other stream being defined after my current stream) and now when I install the module, it shows 'Could not install the module' error, but I can see the module has been installed. I have tried to comment out the foreign key reference, but the problem still persists.
Here's my details.php file:
class Module_Employer extends Module
{
public $version = '1.0';
public function info()
{
return array(
'name' => array(
'en' => 'Employer'
),
'description' => array(
'en' => 'Module for Employer'
),
'frontend' => true,
'backend' => true,
'menu' => 'content',
'shortcuts' => array(
'create' => array(
'name' => 'Employer:new',
'uri' => 'admin/employer/create',
'class' => 'add'
)
)
);
}
public function install()
{
// We're using the streams API to
// do data setup.
$this->load->driver('Streams');
$this->load->language('employer/emp');
// Add streams
if ( ! $this->streams->streams->add_stream(lang('Employer:employers'), 'employers', 'employer', null, 'This is the Employer Stream')) return false;
if ( ! $this->streams->streams->add_stream(lang('Employer:company'), 'company', 'company', null, 'This is the Company Stream')) return false;
if ( ! $this->streams->streams->add_stream(lang('Employer:job'), 'jobs', 'job', null, 'This is the Job Stream')) return false;
// Fields for employers table
$employer_fields = array(
array(
'name' => 'Name',
'slug' => 'name',
'namespace' => 'employer',
'type' => 'text',
'extra' => array('max_length' => 100),
'assign' => 'employers',
'title_column' => true,
'required' => true,
'unique' => true
),
array(
'name' => 'Username',
'slug' => 'username',
'namespace' => 'employer',
'type' => 'text',
'extra' => array('max_length' => 100),
'assign' => 'employers',
'title_column' => true,
'required' => true,
'unique' => true
),
array(
'name' => 'Password',
'slug' => 'password',
'namespace' => 'employer',
'type' => 'encrypt',
'extra' => array('hide_typing' => 'yes'),
'assign' => 'employers',
'title_column' => true,
'required' => true,
'unique' => true
),
array(
'name' => 'Credits',
'slug' => 'credits',
'namespace' => 'employer',
'type' => 'integer',
'extra' => array('max_length' => 10),
'assign' => 'employers',
'title_column' => true,
'required' => true,
'unique' => true
),
array(
'name' => 'Company name',
'slug' => 'company_name',
'namespace' => 'employer',
'type' => 'relationship',
'extra' => array('choose_stream' => 'company'),
'assign' => 'employers',
'title_column' => true,
'required' => false,
'unique' => false
)
);
$this->streams->fields->add_fields($employer_fields);
//Fields for company stream
$company_fields = array(
array(
'name' => 'Username',
'slug' => 'username',
'namespace' => 'company',
'type' => 'relationship',
'extra' => array('choose_stream' => 'employers'),
'assign' => 'company',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'E-mail',
'slug' => 'email',
'namespace' => 'company',
'type' => 'email',
'assign' => 'company',
'title_column' => true,
'required' => true,
'unique' => false
),
array(
'name' => 'Company Name',
'slug' => 'company_name',
'namespace' => 'company',
'type' => 'text',
'extra' => array('max_length' => 100),
'assign' => 'company',
'title_column' => true,
'required' => true,
'unique' => true
),
array(
'name' => 'Logo',
'slug' => 'logo',
'namespace' => 'company',
'type' => 'image',
'extra' => array('folder' => 'upload'),
'assign' => 'company',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Designation',
'slug' => 'designation',
'namespace' => 'company',
'type' => 'text',
'extra' => array('max_length' => 100),
'assign' => 'company',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Contact No.1',
'slug' => 'contact1',
'namespace' => 'company',
'type' => 'integer',
'extra' => array('max_length' => 10),
'assign' => 'company',
'title_column' => true,
'required' => true,
'unique' => false
),
array(
'name' => 'Contact No.2',
'slug' => 'contact2',
'namespace' => 'company',
'type' => 'integer',
'extra' => array('max_length' => 10),
'assign' => 'company',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Contact No.3',
'slug' => 'contact3',
'namespace' => 'company',
'type' => 'integer',
'extra' => array('max_length' => 10),
'assign' => 'company',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Address',
'slug' => 'address',
'namespace' => 'company',
'type' => 'textarea',
'assign' => 'company',
'title_column' => true,
'required' => true,
'unique' => false
),
array(
'name' => 'Billing ddress',
'slug' => 'billing_address',
'namespace' => 'company',
'type' => 'textarea',
'assign' => 'company',
'title_column' => true,
'required' => true,
'unique' => false
),
);
$this->streams->fields->add_fields($company_fields);
//Fields for company stream
$job_desc_fields = array(
array(
'name' => 'Username',
'slug' => 'username',
'namespace' => 'company',
'type' => 'relationship',
'extra' => array('choose_stream' => 'employers'),
'assign' => 'jobs',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Key Skills',
'slug' => 'keyskills',
'namespace' => 'company',
'type' => 'textarea',
'assign' => 'jobs',
'title_column' => true,
'required' => true,
'unique' => false
),
array(
'name' => 'Position Summary',
'slug' => 'position_summary',
'namespace' => 'company',
'type' => 'textarea',
'assign' => 'jobs',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Experience',
'slug' => 'experience',
'namespace' => 'company',
'type' => 'text',
'assign' => 'jobs',
'title_column' => true,
'required' => true,
'unique' => false
),
array(
'name' => 'Industry',
'slug' => 'industry',
'namespace' => 'company',
'type' => 'text',
'assign' => 'jobs',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Functional Area',
'slug' => 'functional_area',
'namespace' => 'company',
'type' => 'text',
'assign' => 'jobs',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Salary',
'slug' => 'salary',
'namespace' => 'company',
'type' => 'text',
'assign' => 'jobs',
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Start Date',
'slug' => 'start_date',
'namespace' => 'company',
'type' => 'datetime',
'assign' => 'jobs',
'extra' => array('input_type' => 'datepicker'),
'title_column' => true,
'required' => false,
'unique' => false
),
array(
'name' => 'Job Type',
'slug' => 'job_type',
'namespace' => 'company',
'type' => 'choice',
'assign' => 'jobs',
'extra' => array('input_type' => 'datepicker'),
'title_column' => true,
'required' => false,
'unique' => false
),
);
return true;
}
public function uninstall()
{
$this->load->driver('Streams');
$this->streams->utilities->remove_namespace('employer');
return true;
}
public function upgrade($old_version)
{
// Your Upgrade Logic
return true;
}
public function help()
{
// Return a string containing help info
// You could include a file and return it here.
return "No documentation has been added for this module.<br />Contact the module developer for assistance.";
}
}
I had earlier "installed" the module, but under the uninstall() function, I forgot to add the code for removing all the streams(P.S: I had 3 streams with separate namespaces defined in the install() function). I only had the following:
$this->streams->utilities->remove_namespace('employer');
Due to this, the other streams were 'existing' in the system although on the face of it, the module was uninstalled, and whenever I tried to reinstall the module, I got the error Could not install module, since while creating tables/streams in the database, the query returned FALSE as the tables already existed.
However, I then added the code to remove all the other streams, by simply including their namespaces in the call for example:
$this->streams->utilities->remove_namespace('employer');
$this->streams->utilities->remove_namespace('job');
$this->streams->utilities->remove_namespace('company');
..and the problem was fixed!