big sur – How to view my custom VPN service listed in a terminal in order to export it?

When I execute this command to list my network services:

networksetup -listallnetworkservices

I only get Wifi, why my VPN configuration is not listed here (it’s in the Network Preferences list) ? And how can I get it listed in the terminal ?

My goal is to export it via a terminal, edit the configuration manually ion a text editor and re-import it.

sharepoint online – Power Apps custom form question on formatting

I’ve designed a custom input form for a Sharepoint list in Power Apps, and I had two questions on formatting:

  1. My formatting in preview mode looks fine, however once published in the Sharepoint list itself the field heights, text positioning, etc. is changed. Any idea how I can ensure that the formatting of the form remains consistent from Power Apps to Sharepoint? For reference, the formatting is shown below.

  2. Upon opening the form in Sharepoint, certain fields (see Issue Type, Priority, Status in the images below) in the form are highlighted/selected without any action on my end – any thoughts on how to remove this?

Custom form in Power Apps previewer:

enter image description here

Custom form in Sharepoint:

enter image description here

Thanks in advance!

magento2.3 – How to add Product Attribute Values from Custom Model Data

I’m building a module for Supplier Inventory.

I created a UI Component for creating Suppliers in the dashboard.

In my ModelData I added the Supplier Name.

    class Supplier extends AbstractExtensibleObject implements SupplierInterface
    {
    /**
     * Get supplier_id
     *
     * @return string|null
     */
    public function getSupplierId()
    {
        return $this->_get(self::SUPPLIER_ID);
    }

    /**
     * Set supplier_id
     *
     * @param string $supplierId
     *
     * @return SupplierInterface
     */
    public function setSupplierId($supplierId)
    {
        return $this->setData(self::SUPPLIER_ID, $supplierId);
    }

    /**
     * Get supplier_name
     *
     * @return string|null
     */
    public function getSupplierName()
    {
        return $this->_get(self::SUPPLIER_NAME);
    }

    /**
     * Set supplier_name
     *
     * @param string $supplierName
     *
     * @return SupplierInterface
     */
    public function setSupplierName($supplierName)
    {
        return $this->setData(self::SUPPLIER_NAME, $supplierName);
    }

    /**
     * Retrieve existing extension attributes object or create a new one.
     *
     * @return VendorModuleApiDataSupplierExtensionInterface|null
     */
    public function getExtensionAttributes()
    {
        return $this->_getExtensionAttributes();
    }

    /**
     * Set an extension attributes object.
     *
     * @param VendorModuleApiDataSupplierExtensionInterface $extensionAttributes
     *
     * @return $this
     */
    public function setExtensionAttributes($extensionAttributes)
    {
        return $this->_setExtensionAttributes($extensionAttributes);
    }

    /**
     * Get supplier_shipping_days
     *
     * @return string|null
     */
    public function getSupplierShippingDays()
    {
        return $this->_get(self::SUPPLIER_SHIPPING_DAYS);
    }

    /**
     * Set supplier_shipping_days
     *
     * @param string $supplierShippingDays
     *
     * @return SupplierInterface
     */
    public function setSupplierShippingDays($supplierShippingDays)
    {
        return $this->setData(self::SUPPLIER_SHIPPING_DAYS, $supplierShippingDays);
    }

    /**
     * Get supplier_feed_url
     *
     * @return string|null
     */
    public function getSupplierFeedUrl()
    {
        return $this->_get(self::SUPPLIER_FEED_URL);
    }

    /**
     * Set supplier_feed_url
     *
     * @param string $supplierFeedUrl
     *
     * @return SupplierInterface
     */
    public function setSupplierFeedUrl($supplierFeedUrl)
    {
        return $this->setData(self::SUPPLIER_FEED_URL, $supplierFeedUrl);
    }

    /**
     * Get supplier_feed_separator
     *
     * @return string|null
     */
    public function getSupplierFeedSeparator()
    {
        return $this->_get(self::SUPPLIER_FEED_SEPARATOR);
    }

    /**
     * Set supplier_feed_separator
     *
     * @param string $supplierFeedSeparator
     *
     * @return SupplierInterface
     */
    public function setSupplierFeedSeparator($supplierFeedSeparator)
    {
        return $this->setData(self::SUPPLIER_FEED_SEPARATOR, $supplierFeedSeparator);
    }

    /**
     * Get supplier_feed_sku_field
     *
     * @return string|null
     */
    public function getSupplierFeedSkuField()
    {
        return $this->_get(self::SUPPLIER_FEED_SKU_FIELD);
    }

    /**
     * Set supplier_feed_sku_field
     *
     * @param string $supplierFeedSkuField
     *
     * @return SupplierInterface
     */
    public function setSupplierFeedSkuField($supplierFeedSkuField)
    {
        return $this->setData(self::SUPPLIER_FEED_SKU_FIELD, $supplierFeedSkuField);
    }

    /**
     * Get supplier_feed_stock_field
     *
     * @return string|null
     */
    public function getSupplierFeedStockField()
    {
        return $this->_get(self::SUPPLIER_FEED_STOCK_FIELD);
    }

    /**
     * Set supplier_feed_min_stock_field
     *
     * @param string $supplierFeedStockField
     *
     * @return SupplierInterface
     */
    public function setSupplierFeedStockField($supplierFeedStockField)
    {
        return $this->setData(self::SUPPLIER_FEED_STOCK_FIELD, $supplierFeedStockField);
    }

    /**
     * Get supplier_feed_min_stock
     *
     * @return string|null
     */
    public function getSupplierFeedMinStock()
    {
        return $this->_get(self::SUPPLIER_FEED_MIN_STOCK);
    }

    /**
     * Set supplier_feed_min_stock
     *
     * @param string $supplierFeedMinStock
     *
     * @return SupplierInterface
     */
    public function setSupplierFeedMinStock($supplierFeedMinStock)
    {
        return $this->setData(self::SUPPLIER_FEED_MIN_STOCK, $supplierFeedMinStock);
    }
}

I also add a Product attribute supplier through the VendorModuleSetupPatchDataAddSupplierProductAttribute.php

class AddSupplierProductAttribute implements DataPatchInterface, PatchRevertableInterface
{
    /**
     * @var ModuleDataSetupInterface
     */
    private $moduleDataSetup;

    /**
     * @var EavSetupFactory
     */
    private $eavSetupFactory;

    /**
     * Constructor
     *
     * @param ModuleDataSetupInterface $moduleDataSetup
     * @param EavSetupFactory          $eavSetupFactory
     */
    public function __construct(
        ModuleDataSetupInterface $moduleDataSetup,
        EavSetupFactory $eavSetupFactory
    ) {
        $this->moduleDataSetup = $moduleDataSetup;
        $this->eavSetupFactory = $eavSetupFactory;
    }

    /**
     * @return AddSupplierProductAttribute|void
     */
    public function apply()
    {
        $this->moduleDataSetup->getConnection()->startSetup();
        /** @var EavSetup $eavSetup */
        $eavSetup = $this->eavSetupFactory->create(('setup' => $this->moduleDataSetup));
        $eavSetup->addAttribute(
            MagentoCatalogModelProduct::ENTITY,
            'supplier',
            (
                'type' => 'int',
                'label' => 'Supplier',
                'input' => 'select',
                'source' => VendorModuleModelProductAttributeSourceSupplier::class,
                'frontend' => '',
                'required' => false,
                'backend' => '',
                'sort_order' => '30',
                'global' => ScopedAttributeInterface::SCOPE_GLOBAL,
                'default' => null,
                'visible' => true,
                'user_defined' => true,
                'searchable' => false,
                'filterable' => false,
                'comparable' => false,
                'visible_on_front' => false,
                'unique' => false,
                'apply_to' => '',
                'group' => 'General',
                'used_in_product_listing' => false,
                'is_used_in_grid' => true,
                'is_visible_in_grid' => false,
                'is_filterable_in_grid' => false,
                'option' => ''
            )
        );

        $this->moduleDataSetup->getConnection()->endSetup();
    }

    /**
     * @return void
     */
    public function revert()
    {
        $this->moduleDataSetup->getConnection()->startSetup();
        /** @var EavSetup $eavSetup */
        $eavSetup = $this->eavSetupFactory->create(('setup' => $this->moduleDataSetup));
        $eavSetup->removeAttribute(MagentoCatalogModelProduct::ENTITY, 'supplier');

        $this->moduleDataSetup->getConnection()->endSetup();
    }

    /**
     * @return array
     */
    public function getAliases()
    {
        return ();
    }

    /**
     * @return array
     */
    public static function getDependencies()
    {
        return ();
    }
}

I was wondering how I can add the Supplier Name that is created through the UI Component will automatically add a value to the Product Attribute Supplier.

magento2 – Magento 2 how to use step navigator of checkout in a custom template?

I’m trying to use the checkout step navigator bar in another template.

I tried this but did not work, it just shows buttons:

in phtml.

<div id="steps" data-bind="scope:'steps'">
    <!-- ko template: getTemplate() --><!-- /ko -->
  </div>

<script type="text/x-magento-init">
    {
 
        "#steps": {
            "Magento_Ui/js/core/app": {
               "components": {
                    "steps": {
                        "component": "Vendor_Application/js/steps"
                    }
                }
            }
        }
    }
    </script>

Js component:

define((
    'ko',
    'uiComponent',
    'underscore',
    'Magento_Checkout/js/model/step-navigator'
), function (ko, Component, _, stepNavigator) {
    'use strict';

    return Component.extend({
        defaults: {
            template: 'Vendor_Application/mystep'
        },

        // add here your logic to display step,
        isVisible: ko.observable(true),

        /**
         * @returns {*}
         */
        initialize: function () {
            this._super();

            // register your step
            stepNavigator.registerStep(
                // step code will be used as step content id in the component template
                'step_1',
                // step alias
                null,
                // step title value
                'Step One',
                // observable property with logic when display step or hide step
                this.isVisible,

                _.bind(this.navigate, this),

                /**
                 * sort order value
                 * 'sort order value' < 10: step displays before shipping step;
                 * 10 < 'sort order value' < 20 : step displays between shipping and payment step
                 * 'sort order value' > 20 : step displays after payment step
                 */
                15
            );

            stepNavigator.registerStep(
                // step code will be used as step content id in the component template
                'step_2',
                // step alias
                null,
                // step title value
                'Step Two',
                // observable property with logic when display step or hide step
                this.isVisible,

                _.bind(this.navigate, this),

                /**
                 * sort order value
                 * 'sort order value' < 10: step displays before shipping step;
                 * 10 < 'sort order value' < 20 : step displays between shipping and payment step
                 * 'sort order value' > 20 : step displays after payment step
                 */
                20
            );

            return this;
        },

        /**
         * The navigate() method is responsible for navigation between checkout steps
         * during checkout. You can add custom logic, for example some conditions
         * for switching to your custom step
         * When the user navigates to the custom step via url anchor or back button we_must show step manually here
         */
        navigate: function () {
            this.isVisible(true);
        },

        /**
         * @returns void
         */
        navigateToNextStep: function () {
            stepNavigator.next();
        }
    });
});

HTML Template

<li id="step_1" data-bind="fadeVisible: isVisible">
    <div class="step-title" data-bind="i18n: 'Step One'" data-role="title"></div>
    <div id="checkout-step-title"
         class="step-content"
         data-role="content">

        <form data-bind="submit: navigateToNextStep" novalidate="novalidate">
            <div class="actions-toolbar">
                <div class="primary">
                    <button data-role="opc-continue" type="submit" class="button action continue primary">
                        <span><!-- ko i18n: 'Next'--><!-- /ko --></span>
                    </button>
                </div>
            </div>
        </form>
    </div>
</li>

<li id="step_2" data-bind="fadeVisible: isVisible">
    <div class="step-title" data-bind="i18n: 'Step Two'" data-role="title"></div>
    <div id="checkout-step-title"
         class="step-content"
         data-role="content">

        <form data-bind="submit: navigateToNextStep" novalidate="novalidate">
            <div class="actions-toolbar">
                <div class="primary">
                    <button data-role="opc-continue" type="submit" class="button action continue primary">
                        <span><!-- ko i18n: 'Next'--><!-- /ko --></span>
                    </button>
                </div>
            </div>
        </form>
    </div>
</li>

Any ideas? or where can I find the template of the step navigator, maybe I can just copy it and assign as template to my js component.
Thanks!

Custom module sort and search filter not working

I’ve created a custom module.

The sorting and search filter not working on the grid page.

<arguments>
<argument name="id" xsi:type="string">testGrid</argument>
<argument name="dataSource" xsi:type="object">VendorNameModuleNameModelResourceModelTestCollection</argument>
<argument name="default_sort" xsi:type="string">id</argument>
<argument name="default_dir" xsi:type="string">desc</argument>
<argument name="save_parameters_in_session" xsi:type="boolean">true</argument>
<argument name="use_ajax" xsi:type="boolean">true</argument>
<argument name="grid_url" xsi:type="url" path="*/*/grid"><param name="_current">1</param></argument>
</arguments>

table sort and search filter not working

uicomponent – How get data from custom Ui Fieldset

I have this code

    <modal name="test_modal">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="onCancel" xsi:type="string">toggleModal</item>
                <item name="options" xsi:type="array">
                    <item name="buttons" xsi:type="array">
                        <item name="0" xsi:type="array">
                            <item name="text" xsi:type="string">Cancel</item>
                            <item name="class" xsi:type="string">action-secondary</item>
                            <item name="actions" xsi:type="array">
                                <item name="0" xsi:type="string">toggleModal</item>
                            </item>
                        </item>
                        <item name="1" xsi:type="array">
                            <item name="text" xsi:type="string">Clear</item>
                            <item name="class" xsi:type="string">action-secondary</item>
                            <item name="actions" xsi:type="array">
                                <item name="0" xsi:type="array">
                                    <item name="targetName" xsi:type="string">ui_conf_name.ui_conf_name.test_modal.general</item>
                                    <item name="actionName" xsi:type="string">clear</item>
                                </item>
                            </item>
                        </item>
                        <item name="2" xsi:type="array">
                            <item name="text" xsi:type="string">Done</item>
                            <item name="class" xsi:type="string">action-primary</item>
                            <item name="actions" xsi:type="array">
                                <item name="0" xsi:type="array">
                                    <item name="targetName" xsi:type="string">ui_conf_name.ui_conf_name.test_modal.general</item>
                                    <item name="actionName" xsi:type="string">save</item>
                                </item>
                            </item>
                        </item>
                    </item>
                </item>
            </item>
        </argument>
        <fieldset name="general" class="VendorModuleUiComponentFormMainModalForm">
            <settings>
                <label translate="true">Label Title</label>
            </settings>
        </fieldset>
    </modal>

The buttons 0 and 1 works, my question is: How do I make button 2 work?

Code of my Class MainModalForm:

namespace VendorModuleUiComponentForm;

use MagentoFrameworkViewElementUiComponentContextInterface;  
use MagentoFrameworkViewElementUiComponentInterface;  
use MagentoUiComponentFormFieldFactory;

class MainModalForm extends MagentoUiComponentFormFieldset
{
    /**
     * @var FieldFactory
     */
    private $fieldFactory;

    public function __construct(
        ContextInterface $context,
        array $components = (),
        array $data = (),
        FieldFactory $fieldFactory,
        VendorModuleHelperData $helper
    ){
        parent::__construct($context, $components, $data);
        $this->fieldFactory = $fieldFactory;
        $this->helper = $helper;
    }

    /**
     * Get components
     *
     * @return UiComponentInterface()
     */
    public function getChildComponents()
    {
        $stores = $this->helper->getListLocaleForAllStores();
        $fields = ();
        foreach($stores as $store){
            $fields() = (
                'label' => $store('label'),
                'formElement' => 'input',
            );
        }

        foreach ($fields as $k => $fieldConfig) {
            $fieldInstance = $this->fieldFactory->create();
            $name = 'my_dynamic_field_' . $k;

            $fieldInstance->setData(
                (
                    'config' => $fieldConfig,
                    'name' => $name
                )
            );

            $fieldInstance->prepare();
            $this->addComponent($name, $fieldInstance);
        }

        return parent::getChildComponents();
    }
}

Do You Need To Build A Custom Real Estate Crm?

It is hard today to find a business that doesn’t use CRM systems to some degree. Real estate is not an exception. Should you go with custom real estate CRM software or use a ready-made solution? We’re here to help you find out. But before we go deep into the cases when custom CRM development is the best way to go, let’s take a quick look at what customer relationship management in real estate is and how realtors benefit from CRMs.

bootstrap_barrio subtheme breaks ckeditor’s media insert in custom block

I’m facing this problem (seems to be producible) in a contrib theme that breaks the ckeditor media insert button on custom blocks in the layout builder of individual nodes…
The javascript error says it’s typically caused by the theme neglecting to include proper html attributes for that entity type, but the theme’s block.html.twig is identical to that template in Bartik. This is a custom subtheme of bootstrap_barrio created with the shell script provided by bootstrap_sass (Barrio highly recommends subtheming that way). Error has been repeated on new D8 and D9 installations, and the full message on page load is:

Uncaught Error: Quick Edit could not associate the rendered entity field markup (with (data-quickedit-field-id="block_content/1/body/en/full")) with the corresponding rendered entity markup: no parent DOM node found with (data-quickedit-entity-id="block_content/1"). This is typically caused by the theme's template for this entity type forgetting to print the attributes.

and while editing a block in the layout builder, clicking ckeditor’s media insert button results in the following error (and the media dialog never opens, the “Loading…” message appears but nothing loads):

Object { message: "nAn AJAX HTTP error occurred.nHTTP Result Code: 500nDebugging information follows.nPath: /media-library?media_library_opener_id=media_library.opener.editor&media_library_allowed_types%5B0%5D=image&media_library_selected_type=image&media_library_remaining=1&media_library_opener_parameters%5Bfilter_format_id%5D=basic_html&hash=Ul_KDXiNyg8Mw95OeXpaIZUYieACO4FlRCUQkle_TCsnStatusText: Internal Server ErrornResponseText: The website encountered an unexpected error. Please try again later.", name: "AjaxError", stack: "@https://atn.ddev.site/core/misc/ajax.js?v=8.9.3:100:32n@https://atn.ddev.site/core/misc/ajax.js?v=8.9.3:643:3n" }

I was very excited about the bootstrap_barrio’s subtheme with sass, gulp, browsersync all configured with bootstrap, but maybe I should switch to radix? I’d much prefer to solve this error though, if anyone has any insight? I don’t know where to begin with javascript debugging 🙁

custom field – Avoiding ACF get_field and returning to core WordPress function

function slb_subscriber_column_data( $column, $post_id ) {  
  // setup our return text
  $output = '';  
  switch( $column ) {    
    case 'title':
      // get the custom name data
      $fname = get_field('slb_first_name', $post_id );
      $lname = get_field('slb_last_name', $post_id );
      $output .= $fname .' '. $lname;
      break;
    case 'email':
      // get the custom email data
      $email = get_field('slb_email', $post_id );
      $output .= $email;
      break;    
  }  
  // echo the output
  echo $output;  
}

function slb_register_custom_admin_titles() {
    add_filter(
        'the_title',
        'slb_custom_admin_titles',
        99,
        2
    );
}

function slb_custom_admin_titles( $title, $post_id ) {
   
    global $post;  
    $output = $title;   
    if( isset($post->post_type) ):
      switch( $post->post_type ) {
        case 'slb_subscriber':
        $fname = get_field('slb_first_name', $post_id );
        $lname = get_field('slb_last_name', $post_id );
        $output = $fname .' '. $lname;
        break;
      }
      endif;   
    return $output;
}

The above is the code from a plugin. I was going through a course on udemy.com.
The author is not responsive.

Issue:
Although the whole approach was to create a setting without any third party, the author seems to have made the code dependent on the ACF plugin somehow. as soon as I disable the ACF plugin the screen goes blank:

enter image description here

I feel that the culprit is this part: get_field How can I get rid of this. what in general may be used from WordPress functions to extract this information without this?

enter image description here